简易第三人称角色控制器
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ThirdMove : MonoBehaviour
{
float h;
float v;
public float speed=6f;
public float turnSpeed=15f;
public Transform camTransform;
Vector3 movement;
Vector3 camForward;
void Update()
{
Move();
}
void Move()
{
h=Input.GetAxis("Horizontal");
v=Input.GetAxis("Vertical");
//GetComponent<Rigidbody>().MovePosition(transform.position+camTransform.right*h*0.1f+camForward*v*0.1f);
transform.Translate(camTransform.right*h*speed*Time.deltaTime+camForward*v*speed*Time.deltaTime,Space.World);
if(h!=0||v!=0)
{
Rotation(h,v);
}
}
void Rotation(float hh,float vv)
{
camForward=Vector3.Cross(camTransform.right,Vector3.up);
Vector3 targetDir=camTransform.right*hh+camForward*vv;
Quaternion targetRotation=Quaternion.LookRotation(targetDir,Vector3.up);
transform.rotation=Quaternion.Lerp(transform.rotation,targetRotation,turnSpeed*Time.deltaTime);
}
}