2016-08-17 39 views
0

我有一個門obj和一個玻璃obj,並且將我的門打開/關閉腳本放在了我的門obj上,並且我想旋轉每個更新的門並將其應用於玻璃物品。我爲門創建了這個腳本,然後我想在我的其他對象上應用rotatePositionY如何從1個對象獲取rotation.y並將其應用於另一個

public float rotatePositionY; 

void Update() { 

    rotatePositionY = transform.rotation.eulerAngles.y; 

} 
另OBJ

我創造了這個劇本,但我沒有用就怎麼講團結協助doorRotateExport正確的,我得到使用transform.rotation.eulerAngles.y錯誤。我認爲它只適用於獲取浮動而不是分配另一個浮動。哪種方法是正確的?

public DoorRotateExport doorRotateExport; 


void Start() { 

    doorRotateExport = GameObject.Find ("doorgim").GetComponent<DoorRotateExport>(); 
} 


void Update() { 

    transform.rotation.eulerAngles.y = doorRotateExport; 
} 
+1

P檢查員在門內的玻璃物體。這樣,當你移動門的時候,所有的層次結構都會以相同的方式表現。 – Cabrra

+0

^是的,它只適用於適當的情況。但是在OP中它只需要'y'旋轉分量。所以這不會是一個好主意。 –

回答

0

此代碼應爲你的第二個OBJ工作:

 
    public DoorRotateExport doorRotateExport; 

    void Start() { 
     doorRotateExport = GameObject.Find("doorgim").GetComponent(); 
    } 

    void Update() { 
     Vector3 newAngle = transform.rotation.eulerAngles; 
     newAngle = doorRotateExport.rotatePosistionY; 
     transform.rotation.eulerAngles.y = newAngle; 
    } 
0

您是鑄造DoorRotateExport類型的變量到float值。

修復此通過改變第二個目的

transform.rotation.eulerAngles.y = doorRotateExport; 

本的腳本這一行:

transform.rotation.eulerAngles.y = doorRotateExport.rotatePosistionY; 
0

我不會建議更新旋轉這樣的,但如果沒有其他的解決方法你必須把它分配在update()方法那麼這裏是一塊工作代碼:

public DoorRotateExport doorRotateExport; 

void Start() 
{ 
    doorRotateExport = GameObject.Find ("doorgim").GetComponent<DoorRotateExport>(); 
} 

void Update() 
{ 

    Quaternion _rotation = transform.rotation; 
    _rotation.eulerAngles = new Vector3(_rotation.eulerAngles.x,doorRotateExport.transform.rotation.eulerAngles.y,_rotation.eulerAngles.z); 
    transform.rotation = _rotation; 
} 
相關問題