2011-07-19 19 views
2

私はUnityで地球の周りを月を回転しようとしています。円アニメーションを作成する最も簡単な方法

私の質問は以下のとおりです。

  1. そのセンターを中心に地球を回転させるための最も簡単な方法は何ですか。
  2. 月周りの月をどのように回転させることができますか?

答えて

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で1つのオブジェクトに対して複数のアニメーションを実行することはできませんか? – Abdulkareem

+0

申し訳ありません今までこの質問が表示されませんでした。私はそれに応じて答えを変えましたが、おそらくすでにこれを試したと思います。正しい場合は私の答えにチェックを入れてください。 –

0

Unity3Dで複数のアニメーションを処理するために、あなたのケースのために助けることができる何を、あなたのためにそれをより容易にすることを検討することですあなたのアニメーションのパスの概要を知ることができます。思考と実際​​にアニメーション作業を行う際の境界を狭めるために、私はiTweenプラグインを使ってアニメーションオブジェクトのパスを可視化し、より複雑なロジックを適用します。あなたの場合は、オブジェクトに回転を追加し、それに続くパスをアニメートすることが賢明です。 iTweenを使用することについてはかなり多くの文書があり、そのようなアニメーションを簡単に作成することができます。

関連する問題