Unity3d - 随机开始方向和ForceMode.Impulse?

Unity3d - Random Start direction and ForceMode.Impulse?

我有一个立方体。附有一个脚本。我想要立方体在开始时以随机方向获得脉冲。我的问题是 addForce。我不知道在那里添加什么。

public Transform myObject;

void Start () {
    Vector3 randomDirection = new Vector3(0f,0f,Random.Range(-359, 359)); 
    myObject.Rotate (randomDirection);

    myObject.rigidbody.AddForce(transform.?????? * speed, ForceMode.Impulse);
}

transform.forwardTransform 上的 属性,表示物体朝向的方向。在编辑器中,它由对象变换手柄上的蓝色轴表示。

如果您在脚本中使用它,对象将在由 myObject.Rotate(...) 线确定的随机方向上施加力。

你想要的随机

myObject.rigid body.AddForce(Random.Range(0, 10), Random.Range(0, 10), Random.Range(0, 10), ForceMode.Impulse);

代码是说,给我一个 x, y, z 的随机力值。

旋转与它无关。如果你从一个随机的角度推动一只猫,你就会给它增加力量。您不需要旋转猫来推动它。虽然你不应该到处推猫。

如果你坚持随机旋转,那么让你的物体向前发射:

 myObject.rigid body.AddForce(myObject.transform.forward * speed, ForceMode.Impulse);