オブジェクトをON/OFFする(ローカル)
スイッチオブジェクトをインタラクトして、対象のオブジェクトをON/OFFを切り替える方法。
ローカルで実行され、状態は同期されません。ミラーのスイッチなどに使用できます。
執筆時バージョン
VRCSDK: 2021.04.21.11.57
UdonSharp : v0.19.8
作例
ObjectSwitch
というキューブをインタラクトでToggleObject
と名前を付けたキューブのアクティブ、非アクティブ状態を切り替える。
UdonGraph
使い方
Udon Behavior
をObjectSwitch
にアタッチします。- アタッチした
Udon Behavior
のProgram Source
に作成したUdonを指定します。 - Public VariablesにあるToggleObjectに
ToggleObject
をセットします。
解説
インタラクトされたときにアクティブ状態がONならOFFに、OFFならONにする処理です。
いわゆるNOT演算をします。UdonGraphでNOT演算を行う場合はBoolean.UnaryNegation
というノードを使用します。
Get activeSelf
ノードで、オブジェクトの有効(True)無効(False)状態が取れます。
インスペクタから設定できるようにToggleObject
のpublicにチェックを入れましょう。
UdonSharp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
使い方
基本的にはUdonGraphと設定の仕方は変わりません。
Udon Behavior
をObjectSwitch
にアタッチします。- アタッチした
Udon Behavior
のProgram Source
に作成したUdonSharpアセットを指定します。 - Public VariablesにあるToggleObjectに
ToggleObject
をセットします。
解説
C#では値の前に!
を付けることでNOT演算ができます。それでtoggleObject.activeSelf
で取得したオブジェクトの状態を反転した値を、toggleObject.SetActive
で設定します。