2017-01-02 78 views
1

我希望我的對象選擇隨機方向,旋轉到它,然後遵循一段時間。之後再重複一遍。這是我的用於選擇方向我的輪換很奇怪

private void ChooseDirection() { 
    // create a random angle from 0.0 to 360.0, Remap is a simple function for it 
    float angle = Utils.Remap (Random.value, 0.0f, 1.0f, 0.0f, 360.0f); 
    transform.Rotate (Vector3.up, angle); 
    print (angle + " : " + transform.rotation.eulerAngles.y); 

} 

上面的代碼產生以下輸出到控制檯

38.12973 : 38.12972 

283.771 : 321.9007 

295.227 : 257.1267 

142.9637 : 40.09043 

178.7077 : 218.7981 

126.3595 : 345.1576 

347.749 : 332.9065 

250.1977 : 223.1042 

243.5038 : 106.608 

252.1878 : 358.7958 

20.00817 : 18.804 

正如你可以看到實際的旋轉角度不是隨機選擇的角度的代碼。因此,我的物體不會面臨移動的方向。

+0

您沒有設置旋轉。你在旋轉。 (即將所選旋轉添加到變換的現有旋轉中。) – Abion47

+0

我更改了代碼,現在角度匹配。我仍然有問題,該對象正面臨錯誤的方向。我會嘗試設置已知值的角度,例如0,10,45,90 ...並查看它是如何移動的 – sasha199568

+0

我發現我的問題。在'Translate'函數中,我使用了'transform.forward'。我應該使用'Vector3.forward'。我的壞,你不能解決我的問題,因爲我沒有發佈我的移動代碼 – sasha199568

回答

3

您目前只是在旋轉對象,未設置其旋轉角度。而不是transform.Rotate(...)您應該使用:

transform.rotation = Quaternion.Euler(0, 0, angle);