- Home /
Question by
Dark-Fury · Jul 12, 2016 at 06:46 PM ·
rotationmovementvector3mouseclick
How do you make a gameobject rotate slowly to the direction of the mouseclick
I'm trying to make it so that when i click anywhere on the screen, the gameobject would gradually rotate to the direction that the mouseclick was in and then immediately stop. The code that i have does actually make it so that the gameobject points to the position of the mouseclick, but that isn't exactly what i want. Any pointers?
public float speed = 1.5f;
private Vector3 target;
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit = new RaycastHit();
public Camera currentCamera;
private Vector3 myPosition;
// Use this for initialization
void Start()
{
target = transform.position;
}
// Update is called once per frame
void Update()
{
if (Input.GetMouseButtonDown(0))
{
myPosition = transform.position;
Debug.Log(myPosition);
Debug.Log("The GameObject has started to MOVE");
// Rotation
Vector3 mousePos = Input.mousePosition;
mousePos.z = 5.23f;
Vector3 objectPos = Camera.main.WorldToScreenPoint(transform.position);
mousePos.x = mousePos.x - objectPos.x;
mousePos.y = mousePos.y - objectPos.y;
float angle = Mathf.Atan2(mousePos.y, mousePos.x) * Mathf.Rad2Deg;
transform.rotation = Quaternion.Euler(new Vector3(0,0,angle));
target = Camera.main.ScreenToWorldPoint(Input.mousePosition);
target.z = transform.position.z;
target = Camera.main.ScreenToWorldPoint(Input.mousePosition);
target.z = transform.position.z;
}
//movement
transform.position = Vector3.MoveTowards(transform.position, target, speed * Time.deltaTime);
}
}
Comment
Your answer
Follow this Question
Related Questions
GameObject wont stop rotating ? 1 Answer
What is a correct way to move a Drone follow a list of Vector3 points 1 Answer
Object's vectors are not moving with the object, what did i do wrong? 1 Answer
Character Controller Movement - Different speeds on different axis 1 Answer
How do I turn 1 objects rotation into another objects movement direction? 1 Answer