Unity 5在圆形或椭圆形路径中移动行星(轨道)

时间:2015-06-14 09:46:13

标签: c# unity3d

我有:

void Update () {
    transform.RotateAround(transform.parent.position, new Vector3(0, 1, 0), orbitSpeed * Time.deltaTime);
}

这给了我一个非常基本的圆形轨道。

我需要做些什么来获得不同的椭圆轨道(每个星球随机生成行星,所以我也想给它们随机轨道路径)?

1 个答案:

答案 0 :(得分:3)

您无法使用RotateAround。你必须自己做功能

尝试使用:

https://developer.android.com/training/run-background-service/create-service.html

x, y: center of the ellipse
a, b: semimajor and semiminor axes

代码:

 var a : int;
 var b : int;
 var x: int;

 var y : int;
 var alpha : int;
 var X : int;
 var Y : int;

 function Update () {
     alpha += 10;
     X = x + (a * Mathf.Cos(alpha*.005));
     Y= y + (b * Mathf.Sin(alpha*.005));
     this.gameObject.transform.position = Vector3(X,0,Y);
 }

编辑:

如果你想让它绕另一个物体运行:

     this.gameObject.transform.position = anotherObject.transform.position + Vector3(X,0,Y);