博客專欄

EEPW首頁 > 博客 > Unity3D :PlayableGraph

Unity3D :PlayableGraph

發(fā)布人:xyni2023 時間:2023-05-19 來源:工程師 發(fā)布文章
Unity3D :PlayableGraph

推薦:將NSDT場景編輯器加入你的3D工具鏈
3D工具集:NSDT簡石數(shù)字孿生
PlayableGraph

PlayableGraph 定義一組綁定到 GameObject 或組件的可播放輸出項。PlayableGraph 還定義一組可播放項及其依賴關系。圖 1 提供了一個示例。

PlayableGraph 負責管理可播放項及其輸出的生命周期。使用 PlayableGraph 可創(chuàng)建、連接和銷毀可播放項。

圖 1:PlayableGraph 示例圖 1:PlayableGraph 示例

在圖 1 中,顯示 PlayableGraph 時,為了緊湊,從圖形節(jié)點的名稱中移除了“Playable”一詞。例如,名為“AnimationClipPlayable”的節(jié)點顯示為“AnimationClip”。

可播放項是一種繼承 IPlayable 接口的 C# 結構體。它用于定義其與其他可播放項的關系。同樣,可播放項輸出是繼承 IPlayableOutput 接口的 C# 結構體,用于定義 PlayableGraph 的輸出。

圖 2 顯示了最常見的核心可播放項類型。圖 3 顯示了核心可播放項輸出類型。

圖 2:核心可播放項類型圖 2:核心可播放項類型圖 3:核心可播放項輸出類型圖 3:核心可播放項輸出類型

The playable core types and playable output types are implemented as C# structs to avoid allocating memory for garbage collection.

“Playable”是所有可播放項的基本類型,這意味著您總是可以隱式將一個可播放項轉(zhuǎn)換為 Playable。相反的情況并不成立,如果將“Playable”顯式轉(zhuǎn)換為不兼容類型,則會拋出異常。它還定義能在可播放項上執(zhí)行的所有基本方法。要訪問特定于類型的方法,您需要將可播放項轉(zhuǎn)換為相應類型。

PlayableOutput 也是如此,它是所有可播放項輸出的基本類型,定義了基本方法。

注意:Playable 和 PlayableOutput 未暴露大量方法。但“PlayableExtensions”和“PlayableOutputExtensions”靜態(tài)類提供了擴展方法。

所有非抽象可播放項都有一個公有靜態(tài)方法 Create(),該方法創(chuàng)建相應類型的可播放項。“Create()”方法始終將 PlayableGraph 作為其第一個參數(shù),該圖擁有新創(chuàng)建的可播放項。某些類型的可播放項可能需要其他參數(shù)。非抽象可播放項輸出還會暴露 Create() 方法。

有效的可播放項輸出應鏈接到可播放項。如果可播放項輸出未鏈接到可播放項,則可播放項輸出不執(zhí)行任何操作。要將可播放項輸出鏈接到可播放項,請使用 PlayableOutput.SetSourcePlayable() 方法。對于該特定可播放項輸出,鏈接的可播放項充當可播放項樹的根。

要將兩個可播放項連接在一起,請使用 PlayableGraph.Connect() 方法。請注意,某些可播放項不能有輸入。

使用 PlayableGraph.Create() 靜態(tài)方法來創(chuàng)建 PlayableGraph。

使用 PlayableGraph.Play() 方法來播放 PlayableGraph。

使用 PlayableGraph.Stop() 方法來停止播放 PlayableGraph。

使用 PlayableGraph.Evaluate() 方法來評估 PlayableGraph 在特定時間的狀態(tài)。

使用 PlayableGraph.Destroy() 方法來手動銷毀 PlayableGraph。此方法會自動銷毀 PlayableGraph 創(chuàng)建的所有可播放項和可播放項輸出。必須手動調(diào)用此銷毀方法來銷毀 PlayableGraph,否則 Unity 會發(fā)出一條錯誤消息。


*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權請聯(lián)系工作人員刪除。




相關推薦

技術專區(qū)

關閉