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

我有

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

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

我需要做些什么才能获得不同的椭圆轨道(行星是每颗恒星随机生成的,所以我也想给它们提供随机的轨道路径)?

解决方法:

您不能使用RotateAround.您将必须发挥自己的作用

尝试使用:

http://answers.unity3d.com/questions/133373/moving-object-in-a-ellipse-motion.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);

相关文章

前言 本文记录unity3D开发环境的搭建 unity安装 unity有中文...
前言 有时候我们希望公告牌跟随镜头旋转永远平行面向屏幕,同...
前言 经过一段时间的学习与实际开发,unity3D也勉强算是强行...
前言 在unity中我们常用的获取鼠标点击的方法有: 1、在3D场...
前言 在之前的例子中,我们都没有用到unity的精髓,例如地形...
这篇文章将为大家详细讲解有关Unity3D中如何通过Animator动画...