【UEFN】Verse の文法(随時更新)

UEFN

基本

演算子

比較演算子

記号意味
<小なり
<=以下
>大なり
>=以上
<>不等号(他言語の「!=」)
=等号(他言語の「==」)
参考:[UEFN] はじめてのVerseプログラミング – 演算子の種類

論理演算子

記号意味
and左辺と右辺が true(他言語の「&&」)
or左辺もしくは右辺が true(他言語の「||」)
nottrue と false を逆転させる(他言語の「!」)
参考:[UEFN] はじめてのVerseプログラミング – 演算子の種類

代入演算子

#宣言時に var と付けた変数に対して有効
set {変数名} = {値}

#オプション型の変数から値を取得する際は失敗コンテキスト内(「if()」等)で「?」を付けて取得する
if({値の設定先の変数名}:{型名} = {オプション型の変数名}?):

条件分岐

if-else

# logic 型の値で条件分岐させる場合は「if({logic 型の変数名}?):」と記述する
if ({条件}):
    # true の場合の処理
else:
    # false の場合の処理

宣言・初期化・定義

クラス

{クラス名} := class({親クラス名}):

変数

変数の宣言時に「var」を付けると書き込みも可能になり、「var」を付けないと読み取り専用となり、初期化時に設定した値から変更できなくなる。
#値型
{変数名}:{型名} = {初期値}

#クラス型
{変数名}:{型名} = {型名}{}

#型推論
{変数名} := {初期値}

# null 許容型(オプション型)
{変数名}:?{型名} = false #値を持たない 
{変数名}:?{型名} = option{{初期値}} #初期値を設定する際は「option{}」を使用する

#辞書型(マップ型)
{変数名}:{Key の型名}]{Value の型名} = map{}

#配列
{変数名}:[]{型名} = array{{初期値1}, {初期値2}}

関数

#通常
{関数名}({引数名}:{引数の型名}):{戻り値の型名} =

#オーバーライド(上書き)
{関数名}<override>({引数名}:{引数の型名}):{戻り値の型名} =

#非同期関数(「Sleep()」等を用いる時に有効)
{関数名}({引数名}:{引数の型名})<suspends>:{戻り値の型名} =

型変換

agent → fort_character

Hoge(Agent:?agent):void =
    if(PlayerAgent := Agent?): #オプション型の変数を扱う際は必須の記述
        if(FortChatacter := Agent.GetFortCharacter[]): #「using { /Fortnite.com/Characters }」が必須
            # FortChatacter 変数を用いた処理

string → message

# message 型を使用する際は「<localizes>」が必須
StringToMessage<localizes>(StringValue:string):message = "{StringValue}"

→ string

ToString({変換前の値})

オブジェクト→オブジェクト

{変換後の型名}[{変換前の値}]

int → float

{ int 型の値} * 1.0

指定子

アクセス指定子(private/public/protected)

#クラス
{クラス名}<{アクセス指定子}> := class({親クラス名}):

#変数
{変数名}<{アクセス指定子}>:{型名} = {初期値}

#関数
{関数名}<{アクセス指定子}>({引数名}:{引数の型名}):{戻り値の型名} =

キーワード

自身のインスタンスの取得

#「Self.{メンバ名}」という書き方でも自身のクラスのメンバにアクセス出来る
Self

コンテナ

要素数の取得

{コンテナの値}.Length

要素の追加

#失敗コンテキスト内に記述
set {コンテナ名}[ Key または要素番号] = {追加する値}

繰り返し文

for

# foreach(配列)
for([変数名]:[配列の値]):

# foreach(マップ)
for({ Key の変数名} -> { Value の変数名}:{マップの値}):

その他

コメント

#コメント

<#
コメント
コメント
#>

属性

@{属性名}

ライブラリのインポート

using { /{ドメイン名}/{フォルダ名またはライブラリ名} }

非同期関数の呼び出し

spawn:
    {非同期関数名}()

デリゲートへの関数の登録

#登録する関数の引数はデリゲートのそれと一致させる必要があある
{変数名}.{デリゲート名}.Subscribe({登録する関数名})

最後に

お問い合わせ

    タイトルとURLをコピーしました