Unity实现人物平滑转身
今天要实现的功能是利用WASD或是方向键实现人物平滑转身。
1.首先搭建一个简易的场景和人物,我在这里利用一个圆柱加一个cube代表人物,其次保证人物模型的本地坐标与世界坐标保持统一,如图所示
2.在人物身上添加PlayerController脚本,源码如下:
usingUnityEngine;
usingSystem.Collections;
publicclassPlayerController:MonoBehaviour{
floatver=0;
floathor=0;
publicfloatturnspeed=10;
//Usethisforinitialization
voidStart(){
}
//Updateiscalledonceperframe
voidUpdate(){
hor=Input.GetAxis("Horizontal");
ver=Input.GetAxis("Vertical");
}
voidRotating(floathor,floatver)
{
//获取方向
Vector3dir=newVector3(hor,0,ver);
//将方向转换为四元数
QuaternionquaDir=Quaternion.LookRotation(dir,Vector3.up);
//缓慢转动到目标点
transform.rotation=Quaternion.Lerp(transform.rotation,quaDir,Time.fixedDeltaTime*turnspeed);
}
voidFixedUpdate(){
if(hor!=0||ver!=0){
//转身
Rotating(hor,ver);
}
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。