【UEFN】Verseでプロップを隠したり見せたりするボタンを実装する

このようなプロップを隠したり見せたりするボタンを作ります。

目次

コードの全体

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行目からの関数定義をしています。 
コードブロックの意味は以下のようになります。 

1.もしプロップが見えているならばプロップを隠して、MeshVisibility変数をfalseに変更
2.見えていないのならばプロップを見せて、MeshVisibility変数をtrueに変更 

21行目のif文の括弧内で変数名?となっていますが、 
logic型の変数を判断する場合、変数の後ろにクエリ演算子?をつけます。 

If文がtrueならHideメソッドfalseならShowメソッドを使って、プロップを隠したり見せたりしています。

On Begin~

16行目からの式はゲーム開始後に実行される式ですが、コードブロックの意味は以下のようになります。 

InteractedWithEvent(ボタンにイントラクトする)が起きたら、ToggleStatue関数を実行する 

InteractedWithEventはagent型の情報を必要とするため、
ToggleStatue関数宣言時のパラメータはagent型となります。
 




以下のように動けば完成です。

よかったらシェアしてね!

この記事を書いた人

メタバースに興味を持ち、UEFN、Verseを学びながらFortniteでゲーム制作しています。
初心者でも理解できるような記事を書くことを心がけております。
間違いがありましたら指摘よろしくお願いいたします。

コメント

コメントする

目次