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的變量顯示在面板上?
- 通過PlayableAsset聲明一個PlayableBehaviour(需要打上Serializable)
- 然後ScriptPlayable.Create(,);將其PlayableBehaviour放到第二個參數
- 如何獲得PlayableDirector以控制播放?
- PlayableBehaviour:playable.GetGraph().GetResolver() as PlayableDirector;
- PlayableAsset:graph.GetResolver() as PlayableDirector;
- 如何把場景的Object設置到剪輯的成員變量?
- 使用聲明ExposedReference變量就可以拖拽了
- 一個軌道可以有多種Clip嗎?
- 可以,TrackAsset上的TrackClipType寫的是PlayableAsset的父類,這樣只需新增PlayableAsset基層寫的那個就可以有多種了。