AddForce在Unity中不起作用

时间:2017-07-14 18:13:28

标签: c# unity3d game-engine game-physics

我有以下脚本

File.open("app_name.log", "a") do |file|
  Process.new("app_name", output: file)
end

每次我运行游戏时,Debug.Log(“ABC”)都会在控制台中打印ABC,但Rigidbody不会移动,它会保持原样。有人可以解释我为什么,因为我不明白为什么控制台打印工作和Rigidbody不移动

这是Ball的代码

public class SpeedUp : MonoBehaviour {

    public Rigidbody2D ball;

    void OnTriggerEnter2D(Collider2D col)
    {
        if (col.tag == "Ball") {
            ball.AddForce(Vector2.left * 1000f);
            Debug.Log("ABC");
        }

    }

}

1 个答案:

答案 0 :(得分:0)

Rigidbody不移动可能需要getComponenrt()

因此,在脚本中添加void Start()方法

public class SpeedUp:MonoBehaviour {

public Rigidbody2D ball;

void Start()
{
   ball = ball.GetComponent<Rigidbody2D>();
}

void OnTriggerEnter2D(Collider2D col)
{
    if (col.tag == "Ball") {
        ball.AddForce(Vector2.left * 1000f);
        Debug.Log("ABC");
    }

}

}