Right now my script tells the character to walk in the direction that is right clicked, but when I click the model is turned instantly, how can I get a tiny turning animation to make it smoother? Here’s my script:
using UnityEngine;
using System.Collections;
public class MouseMovement : MonoBehaviour
{
public int movementSmoothing;
public float speed = 350f;
public AnimationClip walk, idle;
Vector3 targetPosition;
void Start()
{
targetPosition = transform.position;
}
void Update()
{
if (Input.GetMouseButtonDown(1))
{
movementSmoothing = 90;
Plane playerPlane = new Plane(Vector3.up, transform.position);
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
float hitDist = 0.0f;
animation.Play (walk.name);
if (playerPlane.Raycast(ray, out hitDist))
{
var targetPoint = ray.GetPoint(hitDist);
targetPosition = targetPoint;
Quaternion targetRotation = Quaternion.LookRotation(targetPoint - transform.position);
transform.rotation = targetRotation;
}
}
Vector3 direction = targetPosition - transform.position;
float distance = direction.magnitude;
float step = speed * Time.deltaTime;
if (distance > step)
{
transform.position += direction.normalized * step;
}
else
{
animation.Play (idle.name);
transform.position = targetPosition;
}
}
}