2011-07-19 38 views

回答

0
  1. 假設模型地球已經爲中心的局部座標系,可以修改myEarth.Transform.localRotation隨着時間的推移,以動畫的旋轉。

  2. 爲了讓月球繞着地球旋轉,你首先要將月球嵌套爲地球的小孩;這樣,當地球移動時,月球仍然會相對於地球正確定位。隨着月球成爲地球的一個孩子,那麼你必須在地球座標系中圍繞原點(< 0,0,0>)的橢圓(或圓形大約)路徑上對月球進行動畫處理。

1

我推薦在月球的更新功能中使用transform.RotateAround()

using UnityEngine; 

public class Orbit : MonoBehaviour 
{ 
    /* the object to orbit */ 
    public Transform target; 

    /* speed of orbit (in degrees/second) */ 
    public float speed; 

    public Update() 
    { 
     if (target != null) { 
      transform.RotateAround(target.position, Vector3.up, speed * Time.deltaTime); 
     } 
    } 
} 

UPDATE:

爲了使月球繞地球,與地球繞太陽旋轉,你應該讓月亮對地球的孩子。將上面的腳本添加到它。那麼它將在地球的座標空間內,這意味着它將保持在相同的相對位置。 然後,您可以將腳本附加到地球上,讓地球對着太陽。

如果選擇採取這種方法,我建議改變這樣的腳本:

using UnityEngine; 

public class Orbit : MonoBehaviour 
{ 
    /* speed of orbit (in degrees/second) */ 
    public float speed;  

    public Update() 
    { 
     Transform target = transform.parent; 

     if (target != null) { 
      transform.RotateAround(target.position, Vector3.up, speed * Time.deltaTime); 
     } 
    } 
} 
+0

謝謝糞便。 如果我想添加另一個動畫,如下所示: 地球圍繞自身旋轉,同時圍繞太陽旋轉。 我不能在Unity3D中爲一個對象做多個動畫?!! – Abdulkareem

+0

對不起,我直到現在纔看到這個問題。我相應地改變了答案,但我想你可能已經解決了這個問題。如果它是正確的,請打勾我的答案。 –

0

什麼可以幫助您的情況來處理Unity3D多個動畫,是考慮讓您用起來更加容易通過概覽您的動畫路徑。爲了縮小思考和實際做動畫工作之間的邊界,我使用iTween插件來對動畫對象的這些路徑進行可視化並應用一些更復雜的邏輯。爲了您的情況,可以在對象上添加旋轉併爲其後續的路徑添加動畫。使用iTween有相當多的文檔記錄,並且可以很容易地完成這樣的動畫。

相關問題