Unity Timeline 自定義 Signal的使用

       Timeline是一個創建過場動畫,整合不同類型的資源序列的一個工具。目前在網上的搜索到的資料比較少,而且版本各異,需要結合官方文檔和解說視頻才能比較好地學習一遍,本文主要記錄一下Signal的自定義腳本使用。

       Timeline本身就是一個資源整合的工具,可以給不同的對象建立不同類型的軌道(類似視頻音軌),例如有:對象激活與隱藏軌道,動畫軌道,聲音軌道等;每個軌道可以單獨編輯,軌道內的不同資源可以有序排列,並且可以融合,表現力可謂是槓槓的。

       Timeline的基本部分可以直接去看官方的文檔,這裏推薦一下外國的博主的教學鏈接,簡單明瞭,快速掌握基本知識Intro to Unity Timeline

        對於Unity的動畫,很多時候需要是打關鍵幀給回調事件到程序裏處理邏輯,例如攻擊砍殺動作,在某一個關鍵幀標記一個回調事件,讓程序去做相應的處理。類似地,在Timeline下面,也是有這個需要,在不同的軌道播放過程中,我們希望在某個點有具體的回調方式,這個就是今天要說的:Signal了。

        Signal對於熟悉網絡或者操作系統的朋友來說一點都不陌生,但是對於一般程序來說,如果是用Event就會友好的,不知道爲何要用這個名字。它的作用是在單獨的Signal Track或者Track上面的資源增加事件點,給註冊了相關事件的對象拋事件,讓調用相關函數。具體操作如下:

  1. Signal Track或者Track上面的資源添加Signal Emitter
    1. 在Timeline的面板上,選擇任意一個Signal Track或者Track上面的資源:右鍵->Add Signal Emitter
    2. 在Signal Emiiter的檢視器上創建發射信號
  2. 在需要接收Signal的GameObject上增加處理回調的腳本對象,例如:
    1. using System.Collections;
      using System.Collections.Generic;
      using UnityEngine;
      
      public class TimelineController : MonoBehaviour
      {
      
          public void Test(string parameter)
          {
              Debug.Log("Test:" + parameter);
          }
      
      }
      

       

  3. 在需要接收Signal的GameObject上增加Signal Receiver的組件,增加信號及處理函數
    1. 最終大概的效果操作如下,回調函數可以帶參數,Unity會自動識別
  4. 在Timeline啓動的時候會調用這個函數處理,最終實現類似關鍵幀的回調效果。

由於相關教程實在太少,只有官方的教程說得詳細連貫,很多網上的文章也實在是不能模仿着來試,希望能幫到你。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章