我不知道为什么精灵不会跳...我想使用AddForce()而不是直接改变速度。
var trump;
function Start() {
// Assigns the Rigidbody to a variable
trump = GetComponent(Rigidbody2D);
// Variable Switches:
}
function FixedUpdate() {
GetComponent.<Rigidbody2D>().velocity.x = Input.GetAxis("Horizontal") * 10;
if (Input.GetKeyDown(KeyCode.UpArrow)) {
GetComponent.<Rigidbody2D>().AddForce(Vector2(0, 10));
}
}
答案 0 :(得分:1)
而不是
GetComponent.<Rigidbody2D>().AddForce(Vector2(0, 10));
试试这个
GetComponent.<Rigidbody2D>().AddForce(Vector2.up * 10);
希望这有效
答案 1 :(得分:1)
试试这个:
GetComponent.<Rigidbody2D>().AddForce(Vector2(0, 10), ForceMode2D.Impulse);
这将立即让他进入空中。我相信问题是你正在使用ForceMode2D.Force(默认情况下),它希望在几个刻度上多次调用。例如,ForceMode2D.Force可用于在推动像汽车前进这样的物体时继续使用。
您可以考虑将来更改此功能以提供更顺畅的跳跃。一种好的方法是根据sin函数周期施加力。