共用方式為


可裝備的 Wand 如何運作

Wand 概觀

重要

如果您不熟悉 Equippables,建議您先閱讀名為 Hold 物件的文章,以實際方式使用 Equippables ,再閱讀本文。

Wand 是您從 GitHub 下載 Mesh 範例時,在 Toybox 套件中提供的其中一個功能。 當你拿起魔杖時,你把它放在你面前幾乎胸高,Wand 在它的提示上顯示一個閃閃發光的蒸汽粒子效果。

GIF,顯示持有 Wand 處於非啟動狀態的活動出席者。

若要 啟用 Wand,請按下滑鼠左鍵 (PC) 或控制器觸發按鈕 (Quest)。 你的手臂向前推,Wand 的尖發出煙花,通過另一個粒子效果產生。

GIF,顯示活動出席者啟動 Wand,然後產生煙花。

Wand 的 啟動類型 會設定為 單一。 這表示,一旦它執行其行為,Wand 會取消啟動 ,而您的手臂會回到其初始位置。 再次按下以重複行為。

Wand 腳本圖形

讓我們看看 Wand 的運作方式,方法是檢查附加的腳本圖形。

  1. 開啟 Toybox 範例,並確定您位於 Toybox 場景中。

  2. 在 [ 階層] 中 ,選取 Wand_Prefab GameObject。

    已醒目提示 Wand 預製專案的階層螢幕快照。

  3. 在 Inspector,流覽至腳本計算機元件,並注意它包含名為 MagicWand 的腳本圖形資產。 按兩下 [ 編輯圖形 ] 按鈕。

    已醒目提示 [編輯圖形] 按鈕的 Wand 腳本機器元件的螢幕快照。

偵測擷取 Wand 的時機

在連結至 Wand 的視覺腳本中,我們會在名為 Checking if Held to start magic glow 的節點群組中啟動我們的分析。

已醒目提示第二個區段的 Wand 完整腳本圖形螢幕快照。

節點,判斷 Wand 是否被挑選為 Mesh 可互動本文:是 Mine。 這是布爾值,並以 False 值開頭。

isMine 節點的螢幕快照。

當虛擬人偶拿起 Wand 時,其狀態就會變更。 isMine 的值會變更為 「true」,且該值會傳遞至 if 節點。 這會導致「拾取音效」觸發...

狀態的螢幕快照已變更,如果有,則播放網格音訊節點。

...也會將物件變數 StartGlowVFX 的值變更為 「true」。

具有值開始流程 vfx 之 set 物件值節點的螢幕快照。

請注意,isMineOn State Changed 節點上方的文字會顯示「此用戶端的本機」。

的螢幕快照是 Mine,而且在舞臺上已變更節點,並醒目提示此用戶端文字的本機。

這些節點以及觸發的聲音會在本機發生。 不過,我們希望活動中的其他出席者體驗 Wand 會發生什麼事。 這可藉由插入 [設定物件變數 ] 節點,以顯示「由所有用戶端共用」的文字來達成此目的。

已醒目提示所有用戶端文字共用之 set 物件變數節點的螢幕快照。

提示isMine 變數位於 Mesh Interactable Body 腳本中

的螢幕快照是 Mesh Interactable Body 腳本中的布爾值。

開啟非啟動的狀態粒子效果

我們會在名為 Networking startMagic 的節點群組中挑選流程。 此節點群組的目的是開啟和關閉 Wand 的提示處顯示的初始粒子效果。 我們將稱之為這種效果“火花蒸汽”。

已醒目提示第五個區段的 Wand 完整腳本圖形螢幕快照。

狀態變更會導致 startFLowVFX 的 「true」 值在節點 為 時傳遞至

取得物件變數的螢幕快照,在舞臺上已變更,以及節點是否變更。

...這會導致PersistentVFX物件變數的值也成立,這會觸發vfx_wand-ethereal_persistent_02粒子系統(“sparkly蒸汽”) 效果。

設定使用中節點的螢幕快照,其中包含觸發將粒子效果設定為 true 的布爾值。

GIF,顯示持有 Wand 處於非啟動狀態的活動出席者。

啟動 Wand

假設出席者按兩下滑鼠左鍵 (PC) 或控制器觸發按鈕 (Quest)。 這稱為「啟用裝備」。它會導致虛擬人偶的手臂位置變更,並在名為 Networking isPressed 的節點群組中...

已醒目提示第四個區段的 Wand 完整腳本圖形螢幕快照。

...網格可互動主體:已啟動節點偵測到按一下。 此節點是布爾值,預設值為 false。 按兩下變更 會啟動 為 「true」;On State Changed 節點會將上的 「true」 值 傳遞給 If 節點。 這會導致 [設定變數] 節點將 isPressed Boolean 設定為與其之前的內容相反 (所以現在它是 “true” )。

的螢幕快照已啟動節點,而造成按下的其他節點為 true。

提示isActivated 變數位於Mesh Interactable Body 腳本中

的螢幕快照會在 Mesh Interactable Body 腳本中啟動變數。

開啟啟動的狀態粒子效果

按兩下時,我們會在名為 Spell cast的節點群組中挑選流程。

已醒目提示第三個區段的 Wand 完整腳本圖形螢幕快照。

此節點群組會觸發 Wand 結尾的煙花粒子效果,當出席者按兩下按鈕並啟動 Wand 時發生。 在 Wand 回到其非啟動狀態之後,這個節點群組會將第一個粒子效應(“火花蒸汽”)重新開啟。

在圖表中,isPressed* 的 「true」 值會導致 如果節點觸發 Set Variable: Object 節點。 此節點會將 startGlowVFX 變數設定為 「false」。。

開始光暈 vfx 布爾值的螢幕快照已變更為 false

這會再次觸發 Networking startMagic 節點群組中的節點。 這次 startGlowVFX 的 「false」 值會導致 PersistentVFX 粒子效果關閉。

保存 vfx boolen 的螢幕快照已變更為 false,這會關閉第一個粒子效果。

回到單擊節點群組上的 [拼字轉換]。 在短暫的冷卻期間之後,會播放聲音,然後在魔杖的提示處觸發不同的粒子效果:vfx_wand_blast_trail_spheres_01(“煙花”),這是 ShootTrailVFX 物件變數的值

觸發啟動狀態音效和粒子效果之節點的螢幕快照。

GIF,顯示活動出席者啟動 Wand,然後產生煙花。

將非啟動粒子效果重新開啟

經過另一個短暫的冷卻期間,startGlowVFX 布爾值會改回 「true」,這會將網路 startMagic 群組中的vfx_wand_ethereal_persistent_02粒子系統 (“sparkly 蒸汽”) 效果重新變成 “true”。

將火花蒸汽粒子效果重新開啟的節點螢幕快照。

此時,虛擬人偶的手臂回到它之前被啟動之前的位置,並可以看到閃閃發光的蒸汽再次出現。

GIF,顯示持有 Wand 處於非啟動狀態的活動出席者。

釋放 Wand

如果 Wand 具有啟動類型 「切換」,當出席者再次按兩下時,它會觸發第二個、不同的「狀態」或一組行為。 不過,Wand 的啟動類型為「單一」,這表示每次出席者按兩下時,都會重複相同的「狀態」或一組行為。

為了釋放 Wand,出席者按下空格鍵:這會導致 Wand 下降到地面。 當 Wand 被按住時,我們不希望在 Wand 的頂端執行閃閃發光的蒸汽粒子效果。 [如果未佔用] 中的 節點,關閉 Wand 節點群組會關閉此粒子效果。

已醒目提示第一個區段的 Wand 完整腳本圖形螢幕快照。

當 Wand 正在保留時,Mesh Interactable Body:Get Equipped At* 的值是 “DefaultHand”。 [裝備位置] 節點 (布爾值) 的值是 “None”。這兩個值是在 Equal 節點中比較的(也是布爾值):因為它們不相同,因此 Equal輸出為 “false”,如果節點未觸發則為 。

當 Wand 仍保留時,節點具有預設值 Hand 值的螢幕快照。

卸除 Wand 時,Get Equipped At 的值會變更為 「無」。這會導致 EqualIf 節點輸出 「true」。這會觸發 Set Variable:對象節點,其會將 startGlowVFX 物件變數的值變成 “false”。

在 Wand 卸除之後,節點的螢幕快照具有無值。

這再次觸發 Networking startMagic 節點群組中的節點,並關閉 「sparkly 蒸汽」 粒子 effect--vfx_wand_ethereal_persistent_02--這是 PersistantVFX 物件變數的值

保存 vfx boolen 的螢幕快照變更為 false,這會關閉火花蒸汽粒子效果。

使用腳本進行實驗的建議

  • 建立不同的效果,當其中一個現有的裝備被挑選並按住時,可能會觸發。
  • 建立新的 Equippables,以使用一些現有的效果。 例如,某些類型的煙花可以使用 Wand 目前使用的「火花」效果。
  • 為可按住 [裝備] 和按下滑鼠左鍵 (PC) 或控制器按鈕 (Quest) 時觸發的新 Equippable 建立不同的效果和行為。 例如,除了 Wand,您還可以有一個釣魚棒,當您按下按鈕時會投出誘餌。
  • 想想當被挑選時,讓物件向右移至其啟動狀態之間的差異(例如,Drill),以及讓對象啟動為非啟動狀態,然後在出席者按兩下之後進入其啟動狀態(例如平板電腦)。 讓利用這兩種方法的物件。

下一步