2d top down game. I want my transform to first rotate and face the target position and then move towards it. I got the rotation towards the target position done. It works great. But i need a way to set a bool when the rotation is finished, or finished enough.
I tried comparing the quaternions or using quaternion.angle to see if i got a good result but it never arrives. How can i make it so that the bool sets to false when the rotation is ‘good enough’?
Ps. i dont want to set a duration for the lerp, i want it to move at a constant speed so that the fewer the angles to rotate, the shorter time it takes.
if (Input.GetMouseButtonDown (0)) {
target = Camera.main.ScreenToWorldPoint (Input.mousePosition);
rotateToTarget = true;
}
if (rotateToTarget == true && target != null) {
targetRotation = Quaternion.LookRotation (transform.position - target, Vector3.forward);
targetRotation.x = 0.0f;
targetRotation.y = 0.0f;
player.transform.rotation = Quaternion.Slerp (transform.rotation, targetRotation, Time.deltaTime * rotationSpeed);
print (player.transform.eulerAngles + " --> " + targetRotation.eulerAngles);
if (player.transform.rotation == targetRotation) {
rotateToTarget = false;
travelToTarget = true;
print ("rotation finished");
}
}