【发布时间】:2014-01-30 03:57:06
【问题描述】:
我正在学习如何使用 Unity3D,但我遇到了动画问题。我有一个 GameObject,这是我的角色,我希望他跳。首先,我使用了键盘输入,空格键。
jumpForce 是公共浮点变量,其值为 700
if (grounded && Input.GetKeyDown(KeyCode.Space)) {
anim.SetBool("Ground", false);
rigidbody2D.AddForce(new Vector2(0, jumpForce));
}
然后我尝试从 XBox360 Controller Pad 获取输入,一切都很好。但是使用相同的代码(只是将控制器的 GetKeyDown 更改为 GetButton),角色会跳得更高。使用控制器时,达到的最大速度为 53(我得到了刚体 2D.velocity.y 的值),但使用键盘时,该值至少为 13。 如果我更改 jumpForce 的值,则没有任何反应,值保持不变,但如果我将其设置为 0,则角色不会跳跃。
我想知道变量 jumpForce 和函数 AddForce 的效用是什么,如果它不改变速度的值的话。谢谢
【问题讨论】:
-
你确定你输入了if?
-
当然,因为如果我将 jumpForce 设置为 0,角色根本不会跳跃。