2014-03-31 71 views
0

我正在嘗試創建一個安全攝像頭,在我一直在構建的遊戲中來回移動。出於某種原因,它只是保持旋轉,從不反轉方向。我嘗試了transform.eulerAngles.y,但沒有成功,也沒有找到任何與Google搜索有關的任何內容。在這個問題上的任何援助將不勝感激:)謝謝你在前進對象旋轉腳本失敗(Unity3d,Boo)

import UnityEngine 

class RotationScript (MonoBehaviour): 

minRotation = 186 
maxRotation = 263 

def Start(): 
transform.Rotate(Vector3.left * Time.deltaTime * 10) 
def Update(): 
if self.transform.rotation.y <= minRotation: 
transform.Rotate(Vector3.right * Time.deltaTime * 10) 
if self.transform.rotation.y >= maxRotation: 
transform.Rotate(Vector3.left * Time.deltaTime * 10) 

回答

0

嗯,首先,transform.rotation.y是不是在歐拉角(即0-360度),它使用四元數。您第一次使用transform.eulerAngles時是正確的,但您應該先檢查一兩件事情。

對於初學者堅持行:Debug.Log(transform.eulerAngles.y)以上您的if子句。你可能會發現你實際上並沒有在Y軸上旋轉(對於這種事情,統一是很奇怪的,所以經常出現這種情況)。或者你可能會發現你的旋轉角度是負的(雖然根據我的經驗,這並不會發生,儘管給一個物體一個負角度也可以)。

您也可以嘗試使用rotation.localEulerAngles.y,這可能會取決於您的相機對象的父母和旋轉效果。

+0

非常好,謝謝! –

1

你需要一些標誌存儲當前旋轉方向,並改變它,當你達到最低/最高值之一,看看這個僞代碼:

dir = 0; 
maxVal = 100; 
minVal = 10; 
val = minVal; 
step = 1; 

def Update(): 
    if dir == 0: 
     val += step; 
     if val > maxVal : 
       val = maxVal; 
       dir = 1; 
    else : 
     val -= step; 
     if val < minVal : 
       val = minVal; 
       dir = 0;