Unity 動畫事件


建立時間: 2023年3月23日 13:14
更新時間: 2023年3月23日 13:22

說明

Unity 動畫事件是一個在 Unity 引擎中使用的功能,它允許你在播放動畫時,觸發自定義的事件。當動畫達到指定的時間或帧數時,這些事件就會被觸發,並且可以執行相應的操作。

這次我將用簡單的範例,在腳色閒置狀態時,每次閒置動畫播放結束時,都會在 Console 輸出呼吸,代表角色正在呼吸。

Demo

素材

角色的閒置動畫可在 Unity Asset Store 下載 Sunny Land

匯入素材

下載 Sunny Land 後

  1. 選單選擇 Window > Package Manager
  2. Package: 選擇 My Assets
  3. 搜尋 Sunny Land
  4. 按 Import

Import Sunny Land

註:這裡純教學用,方便起見,我匯入所有素材,實際上只用到 idle 動畫

修改動畫紋理

設定 player idle 動畫紋理 Pixels Per Unit 為16,這樣在遊戲場景會顯示比較大。

Set Pixels Per Unit

建立角色物件

將 player-idle-1.png 拖曳到 Hierarchy,並且重置它的座標,方便在 Game 場景觀看
物件名稱可以修改成 Player,方便閱讀

create player game object

設定角色組件

  1. 加入 Animator 組件,並將 player-idle-1.controller 拖曳到 Animator Controller 欄位中
  2. 新增 Assets/Scripts/Player.cs,Assets/Scripts 是資料夾路徑
  3. 加入 Player 腳本

Player adds components

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() 方法,讓事件觸發時呼叫。

新增事件

  1. 打開選單 > Window > Animation > Animation。將它放在合適的位置
  2. 在 Hierarchy 選則 Player 遊戲物件,在 Animation 標籤頁選擇 Idle-Animation
  3. 在最後一格的影格中加入事件

Idle animation add event

設定事件觸發 Breathe() 方法

Set event trigger breathe method

播放遊戲

現在角色應該會不斷的播放閒置動畫、並且觸發動畫事件。

觀看次數: 1387
animationeventunity動畫事件
按讚追蹤 Enjoy 軟體 Facebook 粉絲專頁
每週分享資訊技術

一杯咖啡的力量,勝過千言萬語的感謝。

支持我一杯咖啡,讓我繼續創作優質內容,與您分享更多知識與樂趣!