unity rotate towards
var rotationVector = transform.rotation.eulerAngles;
rotationVector.z = 0; //this number is the degree of rotation around Z Axis
transform.rotation = Quaternion.Euler(rotationVector);
//if you put this in a coroutine and yielding for some amount of time
//you can have something like a rotating loading icon
using UnityEngine;//Attach this script to a GameObject to rotate around the target position.
public class Example : MonoBehaviour
{
private Vector3 target = new Vector3(5.0f, 0.0f, 0.0f); void Update()
{
// Spin the object around the world origin at 20 degrees/second.
transform.RotateAround(target, Vector3.up, 30 * Time.deltaTime);
}
}
using UnityEngine; using System.Collections; public class SCR_mouseRotation : MonoBehaviour { void Update () { Vector3 mousePos = new Vector3(Input.mousePosition.x, Input.mousePosition.z, 10); Vector3 lookPos = Camera.main.ScreenToWorldPoint(mousePos); lookPos = lookPos - transform.position; float angle = Mathf.Atan2(lookPos.z, lookPos.x) * Mathf.Rad2Deg; transform.rotation = Quaternion.AngleAxis(angle, Vector3.down); // Turns Right transform.rotation = Quaternion.AngleAxis(angle, Vector3.up); //Turns Left } }
private float desiredRot; public float rotSpeed = 250; public float damping = 10; private void OnEnable() { desiredRot = transform.eulerAngles.z; } private void Update() { if (Input.GetMouseButton(0)) { if (Input.mousePosition.x > Screen.width / 2) desiredRot -= rotSpeed * Time.deltaTime; else desiredRot += rotSpeed * Time.deltaTime; } var desiredRotQ = Quaternion.Euler(transform.eulerAngles.x, transform.eulerAngles.y, desiredRot); transform.rotation = Quaternion.Lerp(transform.rotation, desiredRotQ, Time.deltaTime * damping); }