So, what i’m trying to accomplish is my childobject circulating/orbiting my mainobject, but in the direction my mouse cursor points to. The problem here is it has to stay at a certain set radius, much like a planet circulating another planet. But in this case i want to chose the direction with my cursor.
The code i’ve written so far tracks the mouse/cursor position perfectly but only rotates the childobject itself, it’s not making the object rotate around the mainobject
Any help is appreciated
using UnityEngine;
using System.Collections;
public class RotationScript : MonoBehaviour
{
// Use this for initialization
void Start () {
}
// Update is called once per frame
void FixedUpdate ()
{
float test = angleInDegree (screen (), mouseposition ());
Debug.Log (test);
this.transform.eulerAngles = new Vector3 (transform.eulerAngles.x, transform.eulerAngles.y, -test);
}
Vector3 mouseposition()
{
return Input.mousePosition;
}
Vector2 screen ()
{
return new Vector2 (Screen.width / 2, Screen.height / 2);
}
public float angleInDegree(Vector2 origin, Vector3 target)
{
var n = 360 - (Mathf.Atan2 (origin.y - target.y, origin.x - target.x)) * 180 / Mathf.PI + 270;
return n % 360;
}
private float toRadians(float x)
{
return (x * Mathf.PI) / 180;
}
}