Unityでメタバースに機能追加(7) TimerCube Step7 2つのアバターで同期して表示させることができるか?

目標 アバターがぶつかってから10秒経過したら花火が開いてCubeが消える「Time Cube」をPrefab化し、積み上げて積み木崩し的に使いたい。

2つのアバターで操作したときに同期して表示されるかを確認します。

前回まででTimerCubeに「Synced Object」Componentを追加して、別アバターでもCubeの動きが同期されるようになりましたが、色を変えたり、非表示にならないなどの問題点がありました。

今まで「Trigger」にあったVisual Scriptを「TimerCube」に持って行きました。アバターがぶつかったときの処理は「Trigger」内に必要なので、その処理(Spatial Trigger On Enter)は残し、それを「Custom Event Trigger」で「TimerCube」側に引き継ぐようにしました。

TriggerのVisual Script

「TimerCube」のVisual Scriptでは、「Custom Event」で引き継ぎ、Synced Variables(同期される変数)に設定した「TimerCubeTriggerOn」をONにします。

これを「On Synced Variable Changed」で検知し、色を黄色に変える等の処理を行います。このような構成にすることにより、別なアバターでも同期して処理が行われます。

TimerCubeのVisual Script

「TimerCube」のSynced Object内で変数「TimerCubeTriggerOn」を「Synced」に設定します。

「TimerCube」に設定したObject Variablesです。

Sandbox上でテストします。
右、左の順に別Webブラウザで開きます。
右のアバターがCubeにぶつかると、左の画面でもCubeが黄色に変わります。

左のアバターがCubeにぶつかっても、左でも右でも反応しません。

原因を調べて、直します。

コメントする