Mesh 101 教學課程第 3 章:使用 Mesh 可視化腳本新增互動功能
注意
我們對 Mesh 工具組進行定期更新,此影片可能不會反映所有最新的變更。 您應該將本文的內容視為事實來源。
既然我們已經完成設定階段,讓我們繼續讓您的 GameObjects 互動! 在本章中,我們將深入探討 Mesh Visual Scripting,您可以使用此腳本將自定義邏輯新增至您的環境。
注意
網格腳本有兩種類型:Mesh Cloud Scripting,其使用 C# 程式代碼和 Mesh Visual Scripting,您可以在其中建立腳本圖形,然後在序列中新增節點(也稱為 單位),以建立程式代碼邏輯。 此版本的 Mesh 101 教學課程使用 Mesh Visual Scripting;舊版使用 Mesh 雲端腳本。
並非每個環境都需要網格腳本,但您將需要它來取得我們將在這裡新增的功能:讓按鈕互動、觸發資訊文字快顯,以及在場景周圍傳送。
月臺 3.1:建立互動按鈕
針對我們的第一項工作,我們想要建立按鈕,以在虛擬人偶按下影片時播放影片。 然後,虛擬人偶可以按下相同的按鈕來停止視訊。
- 在 [ 場景] 視窗中,流覽至包含第 3 章月臺的 Sphere 露台,並調整檢視,以便您查看第一個月 臺 3.1 -- 視訊播放,如下所示。
如您所見,已有視訊畫面已就緒,但需要 [播放/停止] 按鈕。 正如月臺的文本框所說明,我們將建立具有一些按鈕邏輯的腳本圖形,讓按鈕可用來開啟和關閉 VideoPlayer,並變更按鈕文字。
將按鈕新增至場景
在 Unity 中,確定名為 Chapter3 的 GameObject 及其名為 3.1 的子物件 - 影片 已展開。
在 [ 專案] 視窗中,搜尋 ButtonBase 預製專案。 請確定您為 [搜尋] 篩選選擇 [全部]。
從 [專案] 視窗拖曳 ButtonBase,然後在 [階層] 中,將它放在名為 3.1 的 GameObject 上 ,讓 ButtonBase 以子系放置至 3.1 -- Video。
請確定 ButtonBase 的 [轉換>位置] 值為 0、0、0。
ButtonBase 放置在場景中,比我們想要的位置要低一點。 讓我們來修正此錯誤。
確定已選取 [階層] 中的 ButtonBase。
在偵測器中,將 [轉換>位置>Y] 值變更為 “1”。
完美! 現在 ButtonBase 正確位於視訊畫面下方。
重新命名按鈕
選取 ButtonBase 之後,在 Inspector 中,將 ButtonBase 的名稱變更為 “PlayVideoButton”。
變更按鈕的標籤
現在,按鈕上的文字會顯示 [ 卷標]。 讓我們將它變更為 「播放」。
在 [階層] 中,展開 PlayVideoButton GameObject 以顯示其子物件 Button,然後展開 Button 以顯示其子物件,然後選取 Label 子物件。
在 Inspector 中,流覽至 TextMeshPro -- Text 元件,然後在 [文字輸入] 方塊中,將文字變更為 [播放]。
建立按鈕的Visual Script
在 [階層] 中,確定已選取 PlayVideoButton。
在偵測器中,按兩下 [新增元件],然後選取 [腳本計算機]。
請注意,偵測器中已新增兩個新的元件:腳本機器和變數。 偵測器底部還有一個名為 Mesh Visual Scripting Diagnostics 的新視窗。 此視窗會提供您可視化腳本的意見反應,並可用於疑難解答。
請注意,在 [腳本機器] 元件中,[來源] 選項會設定為 Graph。 [來源] 和 [內嵌] 有兩個選擇。 每個都有優點和缺點。 我們將選擇 Graph 作為腳本,因為 Graph 腳本會儲存為個別的檔案,因此可提供更大的彈性。
提示
Unity 腳本機器一文會更詳細地說明圖形和內嵌。
在 [ 腳本機器] 元件中,按兩下 [ 新增 ] 按鈕。
在 [ 儲存圖形 ] 視窗中,建立新的資料夾,然後將它重新命名為 「腳本」。
開啟 [腳本] 資料夾, 然後在 [檔名] 文字框中輸入 “PlayVideoButton”。
完成後,按兩下 [ 儲存] 按鈕。
在 [ 腳本機器] 元件中,於 圖形的 [標題 ] 字段中輸入名稱:「影片播放程式」。
在圖表的 [摘要 ] 字段中輸入描述:「定義影片播放程式如何回應播放/停止動作」。
設定文稿圖形
在 [ 腳本機器] 元件中,按兩下 [ 編輯圖形]。 這會開啟 [ 腳本圖形 ] 視窗。 如果專案和控制台索引標籤尚未存在,請將它拖曳並放在 [專案] 和 [控制台] 索引標籤旁邊,以便同時看到 [腳本圖形和場景] 視窗。
當我們新增節點時,您可能會想要在視窗中有更多空間;您可以按兩下三點按鈕,然後選取 [最大化 ] 以達成此目的,或按兩下 視窗右上角的 [全螢幕 ] 按鈕。
注意
節點也稱為 Visual Scripting 中的單位 。 在本教學課程中,我們將繼續使用 「節點」一詞。
我們不需要預設 的 OnStart 和 OnUpdate 節點,請將其刪除。
編寫圖表版面配置腳本
我們的文稿圖形會有兩個區段:
第1節:偵測何時按下視訊播放程式播放/停止按鈕。 第 2 節:按兩下時,播放影片。 再次按下該影片時,請停止影片。
以下是最終結果外觀的預覽:
偵測是否已按下按鈕
第一個區段會偵測按鈕是否已按下,將需要三個節點。 項目中實際「接聽」且對按兩下做出反應的 GameObject 為 Button。 讓我們將它新增至腳本圖形。
建立 Button 物件變數
在 [階層] 中,展開 [PlayVideoButton]。
在 [腳本圖形黑板] 中,建立新的物件變數:在 [新增變數名稱] 字段中輸入名稱 “Button”,然後按兩下 [+] 按鈕。
將物件變數的類型設定為 Game 物件。
從 [ 階層] 拖曳 Button GameObject,然後將它 放在新變數的 [值 ] 字段中。
將 Button 物件變數從 Blackboard 拖曳,然後將它放在 Script Graph 中,將它新增為節點。
提示:您可能想要在這裡花點時間檢查 Button GameObject 的一些元件:
Mesh 可互動設定:此元件會讓 Button 成為您可以與之互動的物件。 若要深入瞭解,請參閱 使用 Interactables 擷取、按住和擲回。
腳本計算機:此腳本圖形名為 Button Base 行為。
如果您進入 [播放] 模式,您會看到名為 Mesh Interactable Body 的新元件已新增至 Button。
此元件會在運行時間自動新增至可互動的主體;它會向 Visual Scripting 公開各種屬性,例如 IsHovered 和 IsSelected,這會在一刻派上用場。
在腳本圖形中,讓我們新增節點,讓我們知道何時選取按鈕。
如果您需要,請結束播放模式,然後選取 [階層] 中的 [PlayVideoButton],以確保您在 [腳本圖形] 視窗中看到其圖形。
在 [腳本圖形] 中,按住 [取得物件變數] 節點的輸出埠,然後放開滑鼠按鈕。 這會開啟模糊尋找工具。 警告:開啟模糊尋找工具之後,請勿按兩下 Unity 介面以外的任何位置。 這會關閉模糊尋找工具,並在腳本圖形中造成無法預期的行為。
搜尋 [ 已選取],然後在列表中選取 [網格可互動本文:IsSelected]。
注意:此節點會輸出布爾值;您可以在 Graph 偵測器中確認此值。
從 [已選取] 節點的輸出埠拖曳連接器,然後建立名為 Microsoft Mesh 的新節點:狀態變更。 (在模糊尋找器中,搜尋 狀態已變更。
這是我們的三個按鈕點擊偵測節點。 [ 已選取 ] 節點的開頭值為 False,但按兩下按鈕時,值會變更為 True,並傳遞至 [ 開啟狀態變更 ] 節點。 然後,此節點會觸發我們接下來新增的播放/停止節點。
播放或停止視訊
如果 [狀態變更 ] 的值為 true,則影片將會播放。 如果已經播放且按下按鈕, On State Changed 會 變更為 false 值,且影片停止播放。 這會影響腳本圖形第 2 節中的節點,我們即將新增這些節點以提供影片和仍會顯示的影像。
我們的下一個步驟是新增 if 節點以判斷流程。
從 [狀態變更] 節點的 [控件輸出] 埠拖曳連接器,然後建立新的 if 節點。 (在模糊尋找工具中,搜尋 if。
將連接器從 [狀態變更] 節點的 [資料輸出] 埠拖曳至 if 節點的 [數據輸入] 連接埠。
建立變數以判斷影片是否正在播放
在 Blackboard 中,移至 [物件] 索引卷標,然後建立名為 “isPlaying” 的變數。將 [類型] 設為 [布爾值],並將 [值] 複選框保留為未選取。 這會為布爾值提供 false 的預設值。
將 「isPlaying」 變數拖曳至腳本圖形,然後將它放在 *If 節點的右邊。
從 If 節點的 True Control Output 連接埠拖曳連接器,然後建立新的 [設定物件變數] 節點。 (在 Fuzzy Finder 中,搜尋 set object。
在 [ 設定物件變數] 節點中,按兩下一下拉式清單,然後選取 isPlaying。
isPlaying 變數必須在這裡執行雙重值班。 為了確保isPlaying一律具有正確的值,讓我們從否定節點提供輸入。
從 Set 物件變數的 底部數據輸入埠拖曳連接器:isPlaying 節點,然後建立新的 否定節點 。 (在模糊尋找器中,搜尋 否定。
從 Negate 節點的 [數據輸入] 連接埠拖曳連接器,然後建立新的 [取得物件變數] 節點。 (在 Fuzzy Finder 中,搜尋 get 物件變數。
在 [ 取得物件變數] 節點中,按兩下擊變數名稱下拉式清單,然後選取 isPlaying。
否定節點會將IsPlaying的值變更為與目前設定的值相反。 當場景啟動時, isPlaying 為 false (預設值)。 按兩下 [播放/停止] 按鈕時,[否定] 節點會導致 [設定物件變數] 節點中的 [播放] 設定為 true,而這會讓影片播放。 再次按下按鈕時, [否定] 節點會導致 [播放 ] 重設為 false,這會使影片停止。
播放影片或顯示靜止影像
現在,我們將開始建立腳本圖形的第 2 節。 您將新增可偵測 isPlaying 變更的節點;這會決定要播放視訊或在 Station 3.1 的 WebSlate 中顯示靜止影像。
在圖表的下半部,新增 Get Object Variable 節點,並將其值設定為 isPlaying。 (您可以在圖表中按兩下滑鼠右鍵,然後選取 新增節點。 搜尋 get 物件。)
從 Get 物件變數的數據輸出埠 拖曳連接器:isPlaying 節點,然後建立新的 [狀態變更 ] 節點。 (在模糊尋找器中,搜尋 狀態已變更。
從 [ 狀態變更 ] 節點的控件輸出埠拖曳連接器,然後建立新的 If 節點。 (在模糊尋找工具中,搜尋 if。
從 [狀態變更] 節點的數據輸出埠拖曳連接器,然後將它連接到 if 節點的 [數據輸入] 連接埠。
Video 和 VideoStill (影像) GameObjects
在 [階層] 中,展開 VideoPlayer GameObject,並注意它有兩個子物件:Video 和 VideoStill。
選取 [ 視訊 ], 然後在 [偵測器] 中記下下列事項:
影片具有名為 Video Player 的元件,其具有風力渦輪機影片的連結。
視訊 為非使用中狀態(其名稱旁的複選框是空的)。
在 [階層] 中,選取 VideoStill GameObject,然後在 Inspector 中記下下列事項:
VideoStill 已附加靜止影像。
VideoStill 為使用中(選取其名稱旁的複選框)。
當場景開始時,視訊畫面會顯示靜止影像(由於 VideoStill 處於作用中狀態),而且不會播放視訊(這是因為視訊處於非使用中狀態)。 當出席者在顯示 [播放] 時按下 [播放/停止] 按鈕時,它會讓 [視訊 ] 變成作用中,這會導致影片播放,同時讓 VideoStill 處於非作用中狀態,這會隱藏靜止的影像。 按鈕的捲標也會從 [播放 ] 變更為 [停止 ] 當出席者再次按下按鈕時, [視 訊] 會變成非使用中狀態、停止視訊,而 VideoStill 再次作用中,這會讓視訊畫面再次顯示靜止影像。
圖形中的其餘節點會讓這一切發生。
建立 Video 和 VideoStill (image) 物件變數
讓我們建立物件變數,以保存 Video 和 VideoStill GameObjects 的值。
在 [階層] 中,展開 [VideoPlayer]。
在 [腳本圖形黑板] 中,建立新的物件變數:在 [新增變數名稱] 欄位中輸入名稱 “Video”,然後按兩下 [+] 按鈕。
將物件變數的類型設定為 Game 物件。
從 [ 階層] 拖曳 Video GameObject,然後將它 放在新變數的 [值 ] 字段中。
在 Blackboard 中,建立新的 Object 變數:在 [新增變數名稱] 欄位中輸入名稱 “VideoStill”,然後按兩下 [+] 按鈕。
將物件變數的類型設定為 Game 物件。
從 [ 階層] 拖曳 VideoStill GameObject,然後將它 放在新變數的 [值 ] 字段中。
腳本圖形結構
這是一個很好的位置,可以停止並考慮我們想要如何設計腳本圖形第 2 節的其餘部分。 我們的「If」節點會在「true」流程和「false」流程中分支。 我們的物件變數必須可供這兩個流程輕鬆存取,因此我們將將它們放在流程之間的數據列上,如下所示:
將影片和 VideoStill 物件變數新增至腳本圖形
從 Blackboard 拖曳視訊物件變數,然後將它放在腳本圖形中,將它新增為節點。 將它放在 If 節點底下。
從 Blackboard 拖曳 VideoStill 物件變數,然後將它放在 Script Graph 中,將其新增為節點。 將它放在 Get 物件變數的 右邊:影片 節點。
開啟影片
從 If 節點的 [True] 控制器輸出埠拖曳連接器,然後建立新的 Game 物件:設定作用中節點。 (在模糊尋找工具中,搜尋 已設定為作用中。)
從 [取得物件變數:視訊] 節點的 [資料輸出] 埠拖曳連接器,然後將它連接到 Game Object:Set Active 節點的第一個數據輸入埠。
選取節點的 [值] 複選框,讓節點成為作用中。
從 Get Object Variable: VideoStill 節點的 [資料輸出] 埠拖曳連接器,然後將它連接到遊戲物件的第一個數據輸入埠:設定您剛才建立的作用中節點。
將節點的 [值] 複選框保持未選取。 這可確保節點處於非使用中狀態。
現在按鍵時,影片將會播放,且仍會隱藏影像。 在這個序列中,我們只需要一件事。 由於 [播放/停止] 按鈕是切換,因此我們必須確定出席者按兩下 [播放] 之後, 按鈕的標籤會變更為 [停止], 然後在再次按兩下時,捲標會變更回 播放。 若要達成此目的,我們需要建立並新增物件變數,然後新增 TextMeshPro 節點。
建立並新增 Label 物件變數
在 [階層] 中,確定 PlayVideoButton 及其子物件 Button 已展開。
在 [腳本圖形黑板] 中,建立新的物件變數:在 [新增變數名稱] 字段中輸入名稱 “Label”,然後按兩下 [+] 按鈕。
將物件變數的類型設定為 Game 物件。
從 [ 階層] 拖曳 Label GameObject,然後將它 放在新變數的 [值 ] 字段中。
將 Label 物件變數從 Blackboard 拖曳,然後將它放在 Script Graph 中,將它新增為節點。 將它放在 Get 物件變數的 右邊:VideoStill 節點。
新增 Text Mesh Pro 節點
從 Game 物件的控件輸出埠拖曳連接器:設定使用中節點,然後建立新的文字網格 Pro:設定文字節點。 (在模糊尋找工具中,搜尋設定文字。)將它放在遊戲物件右側的上列:設定作用中節點。
從 [取得物件變數:卷標] 節點的 [資料輸出] 埠拖曳連接器,然後將它連接到 Text Mesh Pro:設定文字節點的頂端數據輸入埠。
在節點的文字欄位中,輸入 「Stop」。
新增節點以停止視訊
只有三個節點可供此圖表使用! 我們需要設定按鈕的 False 條件,以便在播放影片時按下按鈕,isPlaying 變數會變成 false,並導致影片停止,而按鈕捲標會再次變更為 [播放]。
我們可以在這裡取得快捷方式。
Control-click the three nodes in the top row that make the “if true” flow.
在 [腳本圖形] 中點擊滑鼠右鍵,然後在快捷功能表中選取 [ 重複選取專案]。
將重複的節點拖曳到圖形中,並將其放在變數的數據列下方。
設定 「if false」 節點
從 [取得物件變數:視訊] 節點的 [資料輸出] 埠拖曳連接器,然後將它連接到第一個 Game 物件的頂端數據輸入埠:在節點的底部數據列中設定作用中節點。
在該相同的第一個 Game 物件中:設定作用 中節點,取消選取 [值]。
從 Get 物件變數:VideoStill 節點的 [資料輸出] 連接埠拖曳連接器,然後將它連接到第二個 Game 物件的頂端數據輸入埠:在節點的底部數據列中設定作用中節點。
在第二個 Game 物件中:設定作用 中節點,選取 [值]。
從 [取得物件變數:卷標] 節點的 [資料輸出] 埠拖曳連接器,然後將它連接到 Text Mesh Pro 的頂端數據輸入埠:將文字節點設定為右邊。
在該相同的 文字網格 Pro:設定文字 節點中,將文字從 [停止] 變更為 [播放]。
從 If 節點的 「False」 控制器輸出埠拖曳連接器,然後將它連接到第一個 Game 物件的控制項輸入埠:在節點的底部資料列中設定作用中節點。
在體驗中與其他人共用視訊播放程序互動
有時候,您希望腳本的活動只由觸發事件的出席者體驗,而其他時候,您希望場景中的每個人都能體驗這些事件。 您可以使用本機 文本範圍 元件來控制此專案。
在 [階層] 中,確定已選取 PlayVideoButton。
在偵測器中,按兩下 [新增元件] 按鈕,然後新增本機腳本範圍。
在本教學課程中,我們希望體驗中的所有出席者都能看到與視訊播放程式的任何互動,並查看影片本身播放和暫停。 若要確保這一點,請確定 已選取此 Game Object 選項上的 [共用視覺腳本變數]。 此選項下方的資訊方塊會告訴您共用的內容,以及保留本機內容。
儲存您的工作
在 Unity 中,儲存項目,然後按 [Unity 編輯機播放] 按鈕。
在 [ 遊戲] 視窗中,按兩下 視訊播放程式下方的 [播放 ] 按鈕。 這會導致按鈕上的標籤變更為 [停止 ],以及有關風力發電機的簡短影片,在按鈕上方的螢幕上播放。
當您完成觀看影片時,請按您再次編輯的按鈕(現在有 [停止] 標籤)。
按 Unity 編輯器 [播放] 按鈕以結束播放模式。
月臺 3.2:觸發資訊對話方塊
針對這項功能,我們將增強現有的可視化腳本,以在虛擬人偶按下按鈕時顯示資訊對話方塊。
在 [階層] 中,折疊 3.1 -- Video GameObject。
請注意,在 [場景] 視窗中,資訊對話框觸發站位於 3.1 -- 視訊播放站的右邊。 調整檢視,讓您可以清楚地看到月臺 3.2。
在偵測器中,展開名為 3.2 -- Info Dialog 的 GameObject。
在 [階層] 中,選取 [InfoButtonWrapper]。
在 Inspector 中,請注意 InfoButtonWrapper 已附加本機腳本範圍元件,而且未選取此 Game Object 選項上的共用視覺腳本變數。
這是因為出席者按兩下使資訊對話框出現的按鈕之後,按鈕就會隱藏給他們。 如果已選取此選項,按鈕就會隱藏在場景中的每個人,而且我們不想這麼做。
在 Inspector 中,流覽至包含 [顯示對話框] 圖形的 [腳本機器] 元件,然後按兩下 [編輯圖形] 按鈕。
在圖表中,從 If 節點的 True 控制件輸出埠拖曳連接器,然後建立新的 Microsoft Mesh:顯示對話框節點 。 (在 [模糊尋找器] 中,搜尋 [顯示] 對話框。
在 [顯示對話框] 節點中,按兩下 [訊息] 字段,然後將 [訊息] 一詞取代為下列句子:
你知道世界上最大的風力發電機的刀片比足球場長嗎?
這是會出現在資訊對話框中的訊息。
選取目前顯示 [確定] 的下拉式清單,然後在快顯清單中取消選取 [確定 ],然後選取 [ 繼續]。 這會將 [ 繼續] 按鈕新增至資訊對話框,使用者可以按下以在讀取其訊息之後關閉對話方塊。
儲存您的工作
在 Unity 編輯器中,儲存項目,然後按 [Unity 編輯機播放] 按鈕。
使用流覽鍵讓您的虛擬人偶遠離按鈕。 請注意,當您的虛擬人偶是某個距離時,按鈕會旋轉且無法選取。
朝按鈕走去。 在特定時間點,按鈕會停止旋轉,表示您現在可以選取它。
選取 按鈕。 資訊對話框隨即出現,並顯示您稍早新增至 [顯示對話框] 節點的訊息。
注意
[播放] 模式中資訊對話框的外觀與在 Mesh 中的顯示方式不同,其中看起來與 Sphere 露台中的其他面板大相徑庭。
當您完成 [資訊] 對話框時,按兩下 [繼續] 按鈕。 請注意,按兩下按鈕之後,它就會消失。 若要再次使用按鈕,您必須結束,然後重新進入播放模式。
提示
此處作用中的距離和觸發元素是由 ProximityDetector GameObject 的元件所決定。
按 Unity 編輯器 [播放] 按鈕以結束播放模式。
月臺 3.3:轉送至渦輪機發電機
針對這項功能,我們會將一些節點新增至 Script Graph,讓場景中的出席者能夠進行遠端傳送。 當出席者按下按鈕時,他們就會從月臺 3.3 的目前位置傳送到連接到風力發電機發電機的提升平臺。 然後,他們可以檢查產生器。
更新文本圖形
在 [場景] 視窗中,請注意 3.3 - 轉送至渦輪機站的右邊是 3.2 -- 資訊對話框觸發站。 調整檢視,讓您可以清楚地看到月臺 3.3。
在 [階層] 中,折疊 3.2 - Info Dialog GameObject,然後展開 3.3 - Teleport GameObject。
按鈕全都為您設定---我們只需要在 Script Graph 中新增節點,以提供遠端傳送行為。
在 [階層] 中,展開 ChapterLabel GameObject,然後選取 TeleportToWindTurbineButton GameObject。
請注意,在 Inspector 中,有名為 Teleport to Location 的腳本機器元件,並附加名為 TeleportToLocationButtonStart 的腳本。 [ 來源] 選項會設定為 Graph,這表示腳本圖形會以獨立檔案的形式儲存在專案中。
按兩下 [ 編輯圖形 ] 按鈕。 如同上一章,我們的圖表已經為您設定了一些節點。
我們會在某個時間將節點新增至此腳本圖形。
建立旅遊點並新增參考
那麼什麼是「旅行點」,你可能會問... 基本上,它是一個元件,可用來定義空間中要繁衍或傳送到的點。 一般而言,您必須先建立 旅遊群組,然後將一或多個旅遊點新增至該群組。 我們已在此專案中為您建立旅遊群組,因此在下列步驟中,我們會將 Travel Point 新增至該群組。 然後,我們將使用該 Travel 點作為虛擬人偶在按兩下 [Teleport ] 按鈕時要移至的位置。 若要深入瞭解,請參閱名為 建立虛擬人偶繁衍和電傳點的文章。
在Hierarchy中,將新的空白 GameObject 建立為 TravelGroup 的子物件,然後將它重新命名為 “TeleportLocationWindTurbine”。
在偵測器中,按兩下 [新增元件] 按鈕,然後搜尋並新增 Travel Point 元件。
在 Inspector 的 [轉換] 元件中,輸入下列值:
Position \(位置\):
X = 6
Y = 56
Z = 60旋轉:
X = 0
Y = 255
Z = 0虛擬人偶會傳送至此位置。
在 Inspector 中,取消選取其名稱旁的複選框,讓 TeleportLocationWindTurbine GameObject 非使用中。 如果您在運行時間使用多個 TravelPoint 物件,Unity 會隨機挑選其中一個作用中的 Travel Points 作為虛擬人偶的繁衍點。 我們想要確保虛擬人偶在 TeleportLocationChapter3 GameObject 所指示的點繁衍,因此應該是唯一作用中的旅遊點。 由於設為非使用中,TeleportLocationWindTurbine 在 Hierarchy 中呈現暗灰色。
建立並新增 Teleport Location 物件變數
在 [腳本圖形黑板] 中,建立新的物件變數:在 [新增變數名稱] 字段中輸入名稱 “TeleportLocation”,然後按兩下 [+] 按鈕。
將物件變數的類型設定為 Game 物件。
從 [階層] 拖曳 TeleportLocationWindTurbine GameObject,然後將它放在新變數的 [值] 字段中。
將 Button 物件變數從 Blackboard 拖曳,然後將它放在 Script Graph 中,將它新增為節點。 將它放在 If 節點下方。
新增傳送節點
從 If 節點的 「True」 輸出控件埠拖曳連接器,然後建立名為 Game Object:設定作用中的新節點。 (在模糊尋找工具中,搜尋 已設定為作用中。)
從 Get 物件變數:TeleportLocation 節點的 [資料輸出] 連接埠拖曳連接器,然後將它連接到遊戲物件:設定使用中節點的第一個數據輸入埠。
選取節點的 [值] 選項,讓它成為使用中狀態。
新增 [移動點] 節點
從 Game 物件的控件輸出埠拖曳連接器:設定作用中節點,然後建立名為 Travel Point: Travel to Point 的新節點。 (在模糊尋找器中,搜尋 旅行點:旅遊。
從 [取得物件變數:TeleportLocation] 節點的 [資料輸出] 埠拖曳連接器,然後將它連接到 Travel Point: Travel Point 節點的 [數據輸入] 連接埠。
這會完成圖形。
儲存您的工作
在 Unity 編輯器中,儲存項目,然後按 [Unity 編輯機播放] 按鈕。
移至站 3.3,然後按兩下 [ Teleport ] 按鈕,以傳送至風力發電機發電機。
在 [ 3.3 - 產生器資訊] 方塊中,選取 [ 顯示/隱藏產生器 ] 按鈕。 窗口在風力渦輪機的一側開啟,您可以在裡面看到發電機。
請放心地靠近發電機,看看。 很酷! 當您完成時,請返回,然後按 [顯示/隱藏產生器 ] 按鈕。 這會關閉視窗。
移至第 4 章
此時,體驗中的出席者將準備好繼續進行第 4 章,並瞭解與物理相關的風力渦輪機活動。 就像第 3 章一樣,有一個 Sphere 露台,其中包含第 4 章的月臺。 前往該處:
從風力渦輪機發電機向相反方向旋轉,朝 3.3 走去 - 移至第 4 章資訊箱。
按 [ Teleport 至第 4 章] 按鈕。
如廣告所述,這會將虛擬人偶放在第 4 章和網格物理的站前。
第 3 章:摘要
在本章中,您已使用 Mesh Visual Scripting 新增功能,讓出席者能夠執行下列動作:
按下按鈕,讓有關風力發電機的教育視頻播放。
按下按鈕,觸發有關風力渦輪機的信息對話框顯示。
按下按鈕,將出席者從地面傳送到連接到風力發電機發電機的平臺,在那裡他們可以仔細檢查發電機。