我如何使用AddForce功能?它不会起作用

时间:2016-03-09 02:47:07

标签: javascript unity3d physics

我不知道为什么精灵不会跳...我想使用AddForce()而不是直接改变速度。 enter image description here

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));
    }

}

2 个答案:

答案 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函数周期施加力。