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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。