Unity3d - 随机启动方向和ForceMode.Impulse?

时间:2015-01-12 15:17:19

标签: unity3d

我有一个立方体。附加了一个脚本。我想,立方体在开始时以随机方向获得冲动。我的问题是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);
}

2 个答案:

答案 0 :(得分:2)

随意你想要

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

答案 1 :(得分:0)

transform.forwardTransform上的一个属性,表示对象面向的方向。在编辑器中,它由对象的变换句柄上的蓝色轴表示。

如果您在脚本中使用它,则对象将按照myObject.Rotate(...)行确定的随机方向对其施加力。