このようなプロップを隠したり見せたりするボタンを作ります。
目次
コードの全体
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
hello_world_device := class(creative_device):
@editable
MyProp :creative_prop = creative_prop{}
@editable
MyButton: button_device = button_device{}
var MeshVisibility : logic =true
OnBegin<override>()<suspends>:void=
MyButton.InteractedWithEvent.Subscribe(ToggleStatue)
ToggleStatue(MyAgent:agent) : void=
if (MeshVisibility?):
MyProp.Hide()
set MeshVisibility = false
else:
MyProp.Show()
set MeshVisibility = true
コードの解説
冒頭
8行目で可視性をコントロールしたいプロップを定義しています。
ボタンデバイスも使うため、11行目で定義しています。
13行目で初期値をtrueとして、変数を定義します。
この変数により、今プロップが見えているか、隠れているかを判断します。
関数宣言
20行目からの関数定義をしています。
コードブロックの意味は以下のようになります。
21行目のif文の括弧内で変数名?となっていますが、
logic型の変数を判断する場合、変数の後ろにクエリ演算子?をつけます。
If文がtrueならHideメソッド、falseならShowメソッドを使って、プロップを隠したり見せたりしています。
On Begin~
16行目からの式はゲーム開始後に実行される式ですが、コードブロックの意味は以下のようになります。
InteractedWithEventはagent型の情報を必要とするため、
ToggleStatue関数宣言時のパラメータはagent型となります。
以下のように動けば完成です。
コメント