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.forward
是 Transform
上的 属性,表示物体朝向的方向。在编辑器中,它由对象变换手柄上的蓝色轴表示。
如果您在脚本中使用它,对象将在由 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);
我有一个立方体。附有一个脚本。我想要立方体在开始时以随机方向获得脉冲。我的问题是 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.forward
是 Transform
上的 属性,表示物体朝向的方向。在编辑器中,它由对象变换手柄上的蓝色轴表示。
如果您在脚本中使用它,对象将在由 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);