Timeline是一個創建過場動畫,整合不同類型的資源序列的一個工具。目前在網上的搜索到的資料比較少,而且版本各異,需要結合官方文檔和解說視頻才能比較好地學習一遍,本文主要記錄一下Signal的自定義腳本使用。
Timeline本身就是一個資源整合的工具,可以給不同的對象建立不同類型的軌道(類似視頻音軌),例如有:對象激活與隱藏軌道,動畫軌道,聲音軌道等;每個軌道可以單獨編輯,軌道內的不同資源可以有序排列,並且可以融合,表現力可謂是槓槓的。
Timeline的基本部分可以直接去看官方的文檔,這裏推薦一下外國的博主的教學鏈接,簡單明瞭,快速掌握基本知識:Intro to Unity Timeline
對於Unity的動畫,很多時候需要是打關鍵幀給回調事件到程序裏處理邏輯,例如攻擊砍殺動作,在某一個關鍵幀標記一個回調事件,讓程序去做相應的處理。類似地,在Timeline下面,也是有這個需要,在不同的軌道播放過程中,我們希望在某個點有具體的回調方式,這個就是今天要說的:Signal了。
Signal對於熟悉網絡或者操作系統的朋友來說一點都不陌生,但是對於一般程序來說,如果是用Event就會友好的,不知道爲何要用這個名字。它的作用是在單獨的Signal Track或者Track上面的資源增加事件點,給註冊了相關事件的對象拋事件,讓調用相關函數。具體操作如下:
- Signal Track或者Track上面的資源添加Signal Emitter
- 在Timeline的面板上,選擇任意一個Signal Track或者Track上面的資源:右鍵->Add Signal Emitter
- 在Signal Emiiter的檢視器上創建發射信號
- 在需要接收Signal的GameObject上增加處理回調的腳本對象,例如:
-
using System.Collections; using System.Collections.Generic; using UnityEngine; public class TimelineController : MonoBehaviour { public void Test(string parameter) { Debug.Log("Test:" + parameter); } }
-
- 在需要接收Signal的GameObject上增加Signal Receiver的組件,增加信號及處理函數
- 最終大概的效果操作如下,回調函數可以帶參數,Unity會自動識別
- 在Timeline啓動的時候會調用這個函數處理,最終實現類似關鍵幀的回調效果。
由於相關教程實在太少,只有官方的教程說得詳細連貫,很多網上的文章也實在是不能模仿着來試,希望能幫到你。