Unity 動畫事件
分類
建立時間: 2023年3月23日 13:14
更新時間: 2023年3月23日 13:22
說明
Unity 動畫事件是一個在 Unity 引擎中使用的功能,它允許你在播放動畫時,觸發自定義的事件。當動畫達到指定的時間或帧數時,這些事件就會被觸發,並且可以執行相應的操作。
這次我將用簡單的範例,在腳色閒置狀態時,每次閒置動畫播放結束時,都會在 Console 輸出呼吸,代表角色正在呼吸。
素材
角色的閒置動畫可在 Unity Asset Store 下載 Sunny Land
匯入素材
下載 Sunny Land 後
- 選單選擇 Window > Package Manager
- Package: 選擇 My Assets
- 搜尋 Sunny Land
- 按 Import
註:這裡純教學用,方便起見,我匯入所有素材,實際上只用到 idle 動畫
修改動畫紋理
設定 player idle 動畫紋理 Pixels Per Unit 為16,這樣在遊戲場景會顯示比較大。
建立角色物件
將 player-idle-1.png 拖曳到 Hierarchy,並且重置它的座標,方便在 Game 場景觀看
物件名稱可以修改成 Player,方便閱讀
設定角色組件
- 加入 Animator 組件,並將 player-idle-1.controller 拖曳到 Animator Controller 欄位中
- 新增 Assets/Scripts/Player.cs,Assets/Scripts 是資料夾路徑
- 加入 Player 腳本
Player.cs
腳本程式碼
Player.cs
using UnityEngine;
public class Player : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
}
public void Breathe()
{
Debug.Log("呼吸");
}
}
這裡只新增 Breathe()
方法,讓事件觸發時呼叫。
新增事件
- 打開選單 > Window > Animation > Animation。將它放在合適的位置
- 在 Hierarchy 選則 Player 遊戲物件,在 Animation 標籤頁選擇 Idle-Animation
- 在最後一格的影格中加入事件
設定事件觸發 Breathe()
方法
播放遊戲
現在角色應該會不斷的播放閒置動畫、並且觸發動畫事件。
觀看次數: 1526
animationeventunity動畫事件
一杯咖啡的力量,勝過千言萬語的感謝。
支持我一杯咖啡,讓我繼續創作優質內容,與您分享更多知識與樂趣!