如何向实例化的预制件添加向下的力?

时间:2016-05-09 02:04:37

标签: c# unity3d

我试图让我的预制件以某种速度下降。现在它们被创造,然后重力作用于它,所以它开始慢,然后在空中建立。我希望它从创建之初就是一个恒定的速度。

我尝试过做一个AddForce,但这似乎不起作用。

void Wave1()
{
    Debug.Log("Wave1");
    delay = .5f;
    Instantiate(smallFlame, new Vector3(drop1, dropHeight, 0), Quaternion.identity);
    Instantiate(smallFlame, new Vector3(drop2, dropHeight, 0), Quaternion.identity);
    Instantiate(smallFlame, new Vector3(drop3, dropHeight, 0), Quaternion.identity);

    smallFlame.GetComponent<Rigidbody2D>().AddForce(new Vector2(0, fallSpeed), ForceMode2D.Impulse);
}

2 个答案:

答案 0 :(得分:1)

只需在更新循环中添加它们的位置,而不是使用物理引擎。

void Update()
{
    transform.position += Vector3.down * Time.deltaTime;
}

这将以固定的速率向下移动它所连接的任何对象。将其放入脚本中并将其添加到您要实例化的预制件中。

答案 1 :(得分:0)

我认为你应该将RigitBody2D的“重力比例”设置为零,以便接近smallFlame。这应该会停止加速。

向他们添加动画。使用Rigitbody2D.velocity