Unity实现人物平滑转身
更新时间:2020年01月20日 16:34:57 作者:丢丢思密达
这篇文章主要为大家详细介绍了Unity实现人物平滑转身,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
今天要实现的功能是利用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 initialization
void Start () {
}
// Update is called once per frame
void 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);
}
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
C#多线程之Thread中Thread.IsAlive属性用法分析
这篇文章主要介绍了C#多线程之Thread中Thread.IsAlive属性用法,实例分析了C#判断线程可用状态的技巧,非常具有实用价值,需要的朋友可以参考下2015-04-04
C#难点逐个击破(8):可空类型System.Nullable
null值用来表示数据类型未被赋予任何值,它是一种引用类型;void表示没有类型,或者说是没有任何值。null与void的区别可以认为void是根本没有,而null是一个空箱子,里面什么都没有。2010-02-02


最新评论