2015-01-12 125 views
1

我有一個立方體。附上一個腳本。我想,立方體在一開始就會隨機發出衝動。我的問題是addForce。我不知道要在那裏添加什麼。Unity3d - 隨機開始方向和ForceMode.Impulse?

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

對於隨機你想

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

但立方體沒有移動到右下角。我想要一個隨機程度。 – Johnny

+0

什麼是「右下角」?同樣,當你在x,y,z上設置力時,它將是隨機的。 – FunctionR

+0

我的意思是,對象只在這個degress中移動:0 - 45 – Johnny

0

transform.forwardTransform一個屬性,它表示該對象面對的方向。在編輯器中,它由對象的變換句柄上的藍色軸表示。

如果您在腳本中使用該對象,則該對象將在由myObject.Rotate(...)行確定的隨機方向上施加一個力。