博客專欄

EEPW首頁 > 博客 > Unity3D :PlayableGraph

Unity3D :PlayableGraph

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

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

PlayableGraph 定義一組綁定到 GameObject 或組件的可播放輸出項(xiàng)。PlayableGraph 還定義一組可播放項(xiàng)及其依賴關(guān)系。圖 1 提供了一個(gè)示例。

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

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

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

可播放項(xiàng)是一種繼承 IPlayable 接口的 C# 結(jié)構(gòu)體。它用于定義其與其他可播放項(xiàng)的關(guān)系。同樣,可播放項(xiàng)輸出是繼承 IPlayableOutput 接口的 C# 結(jié)構(gòu)體,用于定義 PlayableGraph 的輸出。

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

圖 2:核心可播放項(xiàng)類型圖 2:核心可播放項(xiàng)類型圖 3:核心可播放項(xiàng)輸出類型圖 3:核心可播放項(xiàng)輸出類型

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

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

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

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

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

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

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

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

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

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

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

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


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



關(guān)鍵詞: 編輯器 數(shù)字孿生 3D

相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉