c# - Unity 5 moving planets in a circular or elliptical path (orbits) -
i have:
void update () { transform.rotatearound(transform.parent.position, new vector3(0, 1, 0), orbitspeed * time.deltatime); }
which gives me basic circular orbit.
what need varied elliptical orbits (planets generated randomly per star , give them random orbit paths)?
you can't use rotatearound. have make own function
try use:
http://answers.unity3d.com/questions/133373/moving-object-in-a-ellipse-motion.html
x, y: center of ellipse a, b: semimajor , semiminor axes
the code:
var : 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); }
edit:
if want orbit object use:
this.gameobject.transform.position = anotherobject.transform.position + vector3(x,0,y);
Comments
Post a Comment