【Unity3D實例-功能-移動】角色行走和奔跑的相互切換_遊戲

在現時的遊戲中,角色的行走與奔跑的切換不是遊戲中必備的功能,但它可以提升玩家操作體驗感。這篇文章我將會分享給大家,在Unity 中角色行走與奔跑之間的切換功能。從角色的速度控制,到動畫的平滑切換。這篇文章將手把手拆解如何通過代碼控制和動畫配置,讓角色的移動更加靈活。


目錄:

1.創建動畫器

2.設置動畫

3.編寫角色移動代碼

4.測試與運行



一.創建動畫器

在“Project”面板,右鍵選中“Create”,點擊“Animator Controller”,創建一個 Animator 的動畫組件,然後將組件拖拉到角色上。

【Unity3D實例-功能-移動】角色行走和奔跑的相互切換_unity_02

二.設置動畫

1.選中“站立動畫”、“行走動畫”和“奔跑動畫”,然後選擇“Rig”頁籤,把“Animation Type”切換成“Humanoid”。隨後點擊“Animation”頁籤,把“行走動畫”和“奔跑動畫”的循環播放(Loop Time)勾選上。

【Unity3D實例-功能-移動】角色行走和奔跑的相互切換_unity_03

2.打開角色動畫器,把“站立動畫”拖拉到動畫器上,然後創建一個觸發變量,我這裏命名為“run”。

【Unity3D實例-功能-移動】角色行走和奔跑的相互切換_c#_04

3.接着點擊鼠標右鍵,選擇“Create State”,點擊“From New Blend Tree”,創建一個Blend Tree動畫(這裏它會自動創建一個觸發變量,我先把它改名為Speed)。

【Unity3D實例-功能-移動】角色行走和奔跑的相互切換_unity_05

4.為“站立動畫”和“Blend Tree動畫”添加兩條過渡線。點擊選中站立動畫到Blend Tree動畫的過渡線,Conditions列表中添加觸發變量run,並設置為True,反之,Blend Tree動畫到站立動畫的過渡線,run變量設置為false。然後記得把“Has Exit Time”的勾選去掉,因為我們要實時切換動畫。

【Unity3D實例-功能-移動】角色行走和奔跑的相互切換_unity_06

5.最後雙擊打開Blend Tree,首先我們創建兩個motion,一個設置行走動畫,一個設置奔跑動畫。隨後我們把Automate Thresholds的勾選掉,再設置Threshold的值,觸發行走動畫這裏,我設置值為1,奔跑我設置值為3。這裏是什麼意思呢?就是Speed的觸發變量是1的時候,觸發行走動畫,3的時候觸發奔跑動畫。

【Unity3D實例-功能-移動】角色行走和奔跑的相互切換_遊戲開發_07

三.編寫角色移動代碼

1.在 Assets 目錄下創建一個的 Scripts 文件夾(名稱自由命名),並在該文件夾內新建一個C# 腳本文件。腳本創建完成後,將它拖拉到角色對象上。

【Unity3D實例-功能-移動】角色行走和奔跑的相互切換_unity_08

2.編寫行走與奔跑的切換代碼

代碼、模型和動畫都已經上傳到我的個人博客了,大家可以自行下載。

原創來源於-谷宇博客:https://www.biguyu.top/home


四.測試與運行

親測過程:進入 Play Mode 後,玩家按下角色移動鍵W、A、S、D,角色開始進入行走動畫。當玩家按下奔跑鍵(我這裏設置鍵位為“左Shift”按鍵),角色速度提升,動畫過渡到奔跑狀態。鬆開奔跑鍵,角色速度降低,動畫切換回行走狀態。

【Unity3D實例-功能-移動】角色行走和奔跑的相互切換_遊戲_09