見出し画像

【UEFN/Verse】ターゲットダミーを撃つとPrint文が表示されるっていうのをやってみた。

 UEFNとVerseで、ターゲットダミーを撃つと、Print文が左上に表示されるっていうのをやってみた。

 一応、Subscribeできるのをすべて試してみた。

 動画はこちら。

 コードはこちら。

using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
using { /Fortnite.com/Characters }
using { /Verse.org/Verse }

# A Verse-authored crearive device that can be placed in a level
shooting_point_device := class(creative_device):

    @editable
    ShootingTarget :  shooting_range_target_device =  shooting_range_target_device{}

    # Runs when device is started in a running game
    OnBegin<override>()<suspends>:void =

        # ターゲットを有効化
        ShootingTarget.Enable()

        # ブルズアイヒットイベント
        ShootingTarget.BullseyeHitEvent.Subscribe(bullseysHitEventFunction)
        
        # ヒットイベント
        ShootingTarget.HitEvent.Subscribe(hitEventFunction)

        # ノックダウン
        ShootingTarget.KnockdownEvent.Subscribe(knockDownEventFunction)

        # ホップダウン
        ShootingTarget.HopDownEvent.Subscribe(hopDownEventFunction)

        # ホップアップ
        ShootingTarget.HopUpEvent.Subscribe(hopUpEventFunction)

        # ポップアップ
        ShootingTarget.PopUpEvent.Subscribe(popUpEventFunction)

        # ポップダウン
        ShootingTarget.PopDownEvent.Subscribe(popDownEventFunction)

    # ブルズアイヒットの関数
    #
    # 機能しない
    #
    bullseysHitEventFunction(): void =
        Print("特大ヒット!")

    # ヒットの関数
    #
    # ノックダウンの関数がなければ、機能する
    #
    hitEventFunction(): void = 
        Print("ヒット!")

    # ノックダウンの関数
    knockDownEventFunction(): void = 
        Print("ノックダウン!")

    # ホップダウンの関数
    #
    # 機能しない
    #
    hopDownEventFunction(): void =
        Print("ホップダウン!")

    # ホップアップの関数
    #
    # 機能しない
    #
    hopUpEventFunction(): void =
        Print("ホップアップ!")

    # ポップアップの関数
    popUpEventFunction(): void =
        Print("ポップアップ!")

    # ポップダウンの関数
    popDownEventFunction(): void = 
        Print("ポップダウン!")

 ヒットイベントは、ノックダウンイベントを書いてないときは機能していた。たぶん、ノックダウンのSubscribeをコメントアウトしたら、ヒットイベントが機能するはず。

 ブルズアイイベントは、なぜか、機能しない。

 ブルズアイは、多分、動画のターゲットダミーだと頭の箇所か、胸の箇所だと思うんスけど、なぜか、機能しない。
 これはヒットイベントやノックダウンイベントが書かれていないときにも、機能していなかったから、いまの俺のレベルだと、ほんとに謎のまま。

 あと、動画を見てもらったら、分かると思うんすけど、ホップアップとホップダウンが機能していない。
 というか、俺は、ホップアップとホップダウンがなにか、よくわかってない。

 このコードを書いて、ようやく、ポップアップとポップダウンは分かった。

 正直、(ポップアップとポップダウン)、(ホップアップとホップダウン)の違いが、まだ分かってない気が、余裕でありありっす。

 あと、このshooting_range_target_deviceのSubscribeなんですけど、本家のコードをお借りしますと

# Signaled when the target is hit in the bullseye area.
        BullseyeHitEvent<public>:listenable(tuple()) = external {}

 のようになっています。

 引数がtupleになってるので、tupleが必要なのかな、と思いましたが、うまくいかず、

 そもそも、tupleになんの要素が必要なのかもわからず、フォーラムを眺めていましたが、

 どうやら、なにも書かなくていいようです。

 そういうことです。なにも書かなくていい、ということを、俺はとにかく、学びました。

 ちなみに、shooting_range_target_deviceのサイトはこちらになります。

 それと、このコードを本家のほうのスニペットにも試しに公開してみる予定です。スニペットを公開したことがないので、どういう感じか試すためです。

 それだけです。ありがとうございました。


使用されている素材の一部は、Epic Games, Inc. の商標ならびに著作物です。Epicは無断転用を禁じます。本素材はEpicの公式素材ではなく、Epicにより承認されていません。





Switchでも、フォートナイトがあるみたいですね!


 ゲーミングパソコン、いいっすよね!!😆




いいなと思ったら応援しよう!

gorojy よろしくお願いしますッ!