gpt4 book ai didi

javascript - 如何在unity 3d中为物体制作类似跳跃的效果?

转载 作者:行者123 更新时间:2023-12-03 06:26:15 24 4
gpt4 key购买 nike

我有一个物体放在地上。当我按“空格”键时,它必须跳跃并掉到地上。为了让它掉下来,我使用重力和刚体。我将它连接到地面的 boxcollider 以便它可以检测到在地面和空中分别通过 OnTriggerEnter() 和 OnTriggerExit() 进行。代码如下:-

#pragma strict

var jumping:boolean=false;//when the body is in air that is still jumping
var grounded:boolean=true;//laid on ground
var body: Rigidbody;
function Start ()
{
body = GetComponent.<Rigidbody>();
}

function Update () {


if(Input.GetKey("up")){transform.Translate(-3*Time.deltaTime,0,0);}
if(Input.GetKey("left")){transform.Translate(0,0,-3*Time.deltaTime);}

if(Input.GetKey("right")){transform.Translate(0,0,3*Time.deltaTime);}

if(Input.GetKey("down")){transform.Translate(3*Time.deltaTime,0,0);}

if(Input.GetKey("space"))
{
jumping=true;
if(grounded && jumping)
{
body.AddForce(transform.up*5);
}
}
}


//On the ground
function OnTriggerEnter()
{
grounded=true;jumping=false;
body.useGravity=false;
}
//On the ground
function OnTriggerStay()
{
body.useGravity=false;
grounded=true;jumping=false;
}
//jumping
function OnTriggerExit()
{
body.useGravity=true;
grounded=false;jumping=false;
}

但它不是跳跃,而是一会儿上升,一会儿不断下降。即使 useGravity 变为 false,它仍会继续下降。

我的代码有什么问题吗?

提前致谢。

最佳答案

问题出在 ForceMode 上。您没有定义它,因此它默认为Force,但您需要Impulse来实现类似跳跃的效果。

Here's a link查看文档以便更好地理解。

关于javascript - 如何在unity 3d中为物体制作类似跳跃的效果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38642138/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com