【Unity】Timeline編輯器擴展

Timeline編輯器擴展

PlayableDirector(控制器)

  • 創建一個Track的方式(感謝。。。。。大佬)
    • PlayableDirector.playableAsset as TimelineAsset;
    • TimelineAsset.CreateTrack

TrackAsset(自定義軌道類型)

  • 接口
    • CreatePlayable //創建一個PlayableBehaviour時觸發,有多少個片段觸發多少次
    • CreateTrackMixer //至少有一個片段,創建軌道時觸發,已經獲取所有的Clip實例
  • 類Attribute
    • [TrackClipType(typeof(MyPlayableAsset))] //軌道的信息資源
    • [TrackBindingType(typeof(GameObject))] //決定Track能放什麼類型的參數
    • [TrackColor(0, 1, 0)] //給軌道定義顏色

PlayableAsset(資源)

  • API
    • ScriptPlayable.Create() //創建Playable
    • GetGameObjectBinding(director); //獲得軌道綁定的game object

PlayableBehaviour(行爲)

  • 接口
    • PrepareFrame //循環播放刷新時調用
    • OnBehaviourPlay //進入該行爲片段時調用
    • OnBehaviourPause //退出該行爲片段時調用
    • OnPlayableCreate //創建時、編輯器模式選中tiemline時
    • OnGraphStart //創建後、播放時
    • OnGraphStop //停止時,編輯器模式選中其他對象時
    • OnPlayableDestroy //同上,在停止後調用

Playable

  • API
    • playable.GetTime() //獲取該片段當前的播放時間進度

QA


  • 如何把PlayableBehaviour的變量顯示在面板上?
    1. 通過PlayableAsset聲明一個PlayableBehaviour(需要打上Serializable)
    2. 然後ScriptPlayable.Create(,);將其PlayableBehaviour放到第二個參數

  • 如何獲得PlayableDirector以控制播放?
    • PlayableBehaviour:playable.GetGraph().GetResolver() as PlayableDirector;
    • PlayableAsset:graph.GetResolver() as PlayableDirector;

  • 如何把場景的Object設置到剪輯的成員變量?
    • 使用聲明ExposedReference變量就可以拖拽了

  • 一個軌道可以有多種Clip嗎?
    • 可以,TrackAsset上的TrackClipType寫的是PlayableAsset的父類,這樣只需新增PlayableAsset基層寫的那個就可以有多種了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章