2016-04-18 82 views
0

我想用RotateAround旋轉魔方的平面,我的問題是確定某個平面需要旋轉的軸向量,我總是需要使用通過中心gameobject但使用Vector3.up /向下/向右/向左的矢量是無用的,尤其是如果立方體旋轉並改變位置,有什麼建議嗎? :\在Unity中旋轉魔方的平面

例如,這是我用旋轉綠色平面的線,綠色的是在這種情況下,中心的遊戲對象

Parent.transform.RotateAround(green.transform.position,WHAT AXIS VECTOR?,100*Time.deltaTime); 
+1

嗨msLangdon,只是供參考,我可以警告你,這是*非常難以做好。對初學者或學習者程序員來說這不是一份工作。一個基本的提示,請注意,Transform.Rotate可以**在本地軸**(閱讀doco)。這可能會幫助你。如果你看到我的意思,它總是「本地化」。 – Fattie

+0

好吧,我不是一般的編程和數學初學者,我對團結有點新:\難道這很難嗎? :\ – msLangdon95

+1

好的,首先掌握本地和世界座標軸之間的區別,享受 – Fattie

回答

1

我會做的是以下幾點:

上的位置在每一邊的6箇中央部分的每一個我會放置一個空的遊戲對象。我會手動旋轉它們,使它們都具有從地表向外的本地Y軸(切換到Unity中的本地空間)。

現在,每當我需要一個側面的旋轉我會:

  • 父所有9個側面的下我的空遊戲對象爲側
  • 旋轉父遊戲對象90或 - 圍繞局部Y軸旋轉90度
  • 未父所有9個(讓他們準備好進入下一個週期)

所有你需要的是從Unity Docs檢查這些了:transform.parent ,transform.localEulerAngles和一些旋轉函數,可能Mathf.Lerp和Vector3.Lerp用於平滑旋轉。

+1

這是非常正確的。 *不幸*,完全放棄了「在Unity」中移動東西的麻煩;整個事情幾乎是不可能的,除非你遵循mvc模式,並且你有一個數據結構能夠理解所有移動的東西。這是一個真正的痛苦! – Fattie

+0

這確實是一個真正的痛苦:|但是謝謝我還在嘗試 – msLangdon95