Playable相關

1.Playable概述
2017新出現的Playable的新概念,這是一種可以自定義的運行時對象。(Runtime-Object)可以通過PlayableGraph來進行整合和鏈接。從而創建一個複雜的行爲。
Playable可用於創建複雜而靈活的數據評估樹。通過PlayableExtensions.Connect可以進行鏈接。樹中的每個Playable都可以設置其每個孩子的“Weight”或“Influence”。一旦Playable的樹被創建,它可以通過使用它與PlayableDirector組件“播放”。 (PlayableDirector.Play)

一旦Playable與PlayableDirector相關聯,播放器將逐個播放Playables。每次遇到樹中的Playable時,它都會調用它的PrepareFrame方法。這允許Playable“爲自己準備下一次評估”。在PrepareFrame階段,每個Playable都可以修改其孩子(通過添加新的輸入或刪除孩子)。這使Playable在運行時能夠在Playable樹中“生成”新的子分支。這意味着Playable樹不是靜態結構。他們可以適應和改變隨着時間的推移

AnimationPlayables是Playable的一個很好的例子。它們允許現有的AnimationClip通過AnimationPlayableMixers即時連接在一起。這可以用於編程地創建動畫行爲,如運動混合。一旦創建了一個AnimationPlayables樹,它可以通過Animator.Play方法傳遞給Animator組件。

2.Playable相關概念

(1)PlayableAsset:一個針對資源的基類,可以用於運行時實例化一個Playable。
(2)PlayableBehaviour
PlayableBehaviour是一個基類,可以被每一個自定義的playable腳本所驅動。
PlayableBehaviour可以用於向PlayableGraph增加用戶定義的行爲。
PlayableBehaviour必須是連接到激活的輸出的PlayableGraph的分支的一部分。
關於該Playable的公有方法(都是回調函數):
OnBehaviourPause:當Playable的play state變成PlayState.Paused的時候,這個方法被調用。
OnBehaviourPlay:當Playable的Playstate變成PlayState.Playing的時候,這個方法被調用。
OnGraphStart:這個方法被調用,當擁有這個PlayableBehavior的PlayableGraph開始的時候。
OnGraphStop:這個方法被調用,當擁有這個PlayableBehavior的PlayableGraph停止的時候。
OnPlayableCreate:這個方法被調用,當擁有這個PlayableBehavior的Playable被創建的時候。
OnPlayableDestroy:這個方法被調用,當擁有這個PlayableBehavior的Playable被銷燬的時候。
PrepareFrame:這個方法在Playable的PrepareFrame階段被調用。
ProcessFrame :這個方法在Playable的ProcessFrame 階段被調用。

這裏注意關於PlayableBehaviour的一個使用的問題,如果在2017版本下直接創建,拖入TimeLine下,是會報錯的!報錯的!如果發現報錯,請注意,修改創建的PlayableBehaviour腳本是不是繼承自BasicPlayableBehaviour而不是PlayableBehaviour。修改之後,可以修正前面不能拖入TimeLine的錯誤。

(3)PlayableBinding
保存有關PlayableAsset輸出的信息的結構體。
PlayableAssets指定使用PlayableBindings支持的輸出類型。

(4)PlayableDirector
實時播放PlayableAsset並控制Playable對象的播放。

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