制作圆圈动画的最简单方法

时间:2011-07-19 22:34:19

标签: animation 3d unity3d

我正试图在Unity中围绕地球旋转月球。

我的问题是:

  1. 围绕中心旋转地球的最简单方法是什么。
  2. 如何围绕地球旋转月球?

3 个答案:

答案 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);
        }
    }
}

<强>更新

要使月球围绕地球旋转,地球围绕太阳旋转,你应该让月球成为地球的孩子。将上面的脚本添加到它。然后它将在地球的坐标空间内,这意味着它将保持在相同的相对位置。 然后,您可以将脚本附加到地球,将地球附加到太阳。

如果您选择采用这种方法,我建议您更改脚本:

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);
        }
    }
}

答案 1 :(得分:0)

  1. 假设您的模型地球已经以其局部坐标系为中心,您可以随着时间的推移修改myEarth.Transform.localRotation以设置其旋转的动画。

  2. 为了让月球围绕地球旋转,你首先要把月亮作为地球的孩子筑巢;这样,当地球移动时,月球仍将相对于地球正确定位。随着月球成为地球的孩子,你必须在地球本地坐标的原点(&lt; 0,0,0&gt;)周围的椭圆形(或近似圆形)路径上为月亮设置动画。

答案 2 :(得分:0)

在Unity3D中处理多个动画有助于您的情况,通过概述动画的路径,可以考虑让您更轻松。为了缩小思考和实际进行动画工作之间的界限,我使用iTween插件来观察动画对象的那些路径并应用一些更复杂的逻辑。对于您的情况,空间上是向对象添加旋转并为其遵循的路径设置动画。有很多文档证明使用iTween并且可以使用它轻松完成这样的动画。