(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

(:3[kanのメモ帳]


本ブログの運営者kan.kikuchiが個人で開発したゲームです!

    

Verseで関数を引数(変数)として渡し、コールバックを実装する方法【UEFN】【Verse】


このエントリーをはてなブックマークに追加


はじめに

今回はVerseで関数を引数(変数)として渡し、渡した先で実行する

いわゆるコールバックを実装する方法の紹介です!



Verseでコールバックを実装する方法

早速ですがVerseでコールバックを実装するには「type{_(:引数) :返り値}」という形式で関数を渡します。

具体的には以下のような感じ。

OnBegin<override>()<suspends>:void=
    #コールバックとしてFinishを渡して実行
    Play(Finish)

#コールバックを渡す関数
Play(Callback : type{_(:string) :void}):void=
    Print("Play 実行")

    #渡されたコールバックの実行
    Callback("コールバックを実行しました")

#コールバックとして渡す関数
Finish(text : string):void=
    Print(text)


なお、引数を増やしたい時はカンマ区切りで増やします。

#stringとintの2つの引数を持つ場合
Play(Callback : type{_(:string, :int) :void}):void=
    Print("Play 実行")
    Callback("コールバックを実行しました", 10)

Finish(text : string, value:int):void=
    Print(text)


また、引数を無くしたい場合は括弧の中身をなくし(voidにするのではなく)、

返り値を設定する事ももちろん可能です。

#引数を持たず、stringの返り値を持つ場合
Play(Callback : type{_() :string}):void=
    Print("Play 実行")
    text := Callback()

Finish():string=
    return "Finish 実行"


なお、詳しい仕様が知りたい場合は以下の記事が参考になるかと思います。