Orbit object around parent object
I have been trying to rotate an object around it's parent but i cannot get it to work, the orbiting object is a child to the parent but when i run the game the child object does not move at all.
This is my script that is meant to have it rotate around the parent:
using UnityEngine;
using System.Collections;
public class Orbit : MonoBehaviour {
public float rotateSpeed = 5.0f;
public float orbitSpeed = 1.0f;
private Vector3 pos;
void Start(){
//get parent object position
pos = transform.root.gameOject;
}
void update() {
// planet to spin on it's own axis
transform.Rotate (transform.up * rotateSpeed * Time.deltaTime);
// planet to travel along a path that rotates around the sun
transform.RotateAround (pos, Vector3.up, orbitSpeed * Time.deltaTime);
}
}
The script is a component attached to the child object that is meant to rotate.
I have no syntax errors either. Am using the latest version of Unity. What have I got wrong here?
Answer by eatsleepindie · Mar 09, 2016 at 03:34 AM
First thing I notice is that the 'u' in your update function is lower case.
Should look like this :
void Update() {
// planet to spin on it's own axis
transform.Rotate (transform.up * rotateSpeed * Time.deltaTime);
// planet to travel along a path that rotates around the sun
transform.RotateAround (pos, Vector3.up, orbitSpeed * Time.deltaTime);
}
Ah thanks good spot, i edited it and then got an error:
Type `UnityEngine.Transform' does not contain a definition for `gameOject' and no extension method `gameOject' of type `UnityEngine.Transform' could be found (are you missing a using directive or an assembly reference?)
In relation to line:
pos = transform.root.gameOject;
Your answer
Follow this Question
Related Questions
Rotate character 0 Answers
Camera Rotation every time a key is pressed 0 Answers
Strange rotation behaviour 0 Answers
How to make all Guns look at the same point 2 Answers
How can I make the camera not overreach a limit of rotation one axis. 0 Answers