Unity實(shí)現(xiàn)人物平滑轉(zhuǎn)身
今天要實(shí)現(xiàn)的功能是利用WASD或是方向鍵實(shí)現(xiàn)人物平滑轉(zhuǎn)身。
1.首先搭建一個(gè)簡(jiǎn)易的場(chǎng)景和人物,我在這里利用一個(gè)圓柱加一個(gè)cube代表人物,其次保證人物模型的本地坐標(biāo)與世界坐標(biāo)保持統(tǒng)一,如圖所示

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);
//將方向轉(zhuǎn)換為四元數(shù)
Quaternion quaDir = Quaternion.LookRotation(dir,Vector3.up);
//緩慢轉(zhuǎn)動(dòng)到目標(biāo)點(diǎn)
transform.rotation = Quaternion.Lerp(transform.rotation,quaDir,Time.fixedDeltaTime*turnspeed);
}
void FixedUpdate(){
if(hor!= 0 ||ver!= 0 ){
//轉(zhuǎn)身
Rotating(hor,ver);
}
}
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C#基于Socket實(shí)現(xiàn)簡(jiǎn)單聊天室功能
這篇文章主要為大家詳細(xì)介紹了C#基于Socket實(shí)現(xiàn)簡(jiǎn)單聊天室功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02
C#多線程之Thread中Thread.IsAlive屬性用法分析
這篇文章主要介紹了C#多線程之Thread中Thread.IsAlive屬性用法,實(shí)例分析了C#判斷線程可用狀態(tài)的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04
C#實(shí)現(xiàn)關(guān)閉子窗口而不釋放子窗口對(duì)象的方法
下面小編就為大家?guī)硪黄狢#實(shí)現(xiàn)關(guān)閉子窗口而不釋放子窗口對(duì)象的方法 。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-01-01
C#難點(diǎn)逐個(gè)擊破(8):可空類型System.Nullable
null值用來表示數(shù)據(jù)類型未被賦予任何值,它是一種引用類型;void表示沒有類型,或者說是沒有任何值。null與void的區(qū)別可以認(rèn)為void是根本沒有,而null是一個(gè)空箱子,里面什么都沒有。2010-02-02

