Unity中实现人物平滑转身

来源:互联网 发布:深圳行知职业技术官网 编辑:程序博客网 时间:2024/04/29 01:15

       今天要实现的功能是利用WASD或是方向键实现人物平滑转身。

       1.首先搭建一个简易的场景和人物,我在这里利用一个圆柱加一个cube代表人物,其次保证人物模型的本地坐标与世界坐标保持统一,如图所示


2.在人物身上添加PlayerController脚本,源码如下:

using UnityEngine;using System.Collections;public class PlayerController : MonoBehaviour {float ver = 0;float hor = 0;public float  turnspeed = 10;// Use this for initializationvoid Start () {}// Update is called once per framevoid Update () {hor = Input.GetAxis("Horizontal");ver = Input.GetAxis("Vertical");}void Rotating (float hor, float ver){//获取方向Vector3 dir = new Vector3 (hor,0,ver);//将方向转换为四元数Quaternion quaDir = Quaternion.LookRotation(dir,Vector3.up);//缓慢转动到目标点transform.rotation = Quaternion.Lerp(transform.rotation,quaDir,Time.fixedDeltaTime*turnspeed);}void FixedUpdate(){if(hor!= 0 ||ver!= 0 ){//转身Rotating(hor,ver);}}}






1 0
原创粉丝点击