以下の内容はフォートナイトv29.30に基づいてます。
目次
オプション型とは
オプション型は、値が入っている場合と値が入っていない場合の両方を表すことができる型。値が入っている場合はその値が、値が入っていない場合はfalseが入る。
オプション型の変数を定義する
var MaybeANumber : ?int = false
オプション型の変数を定義するには、データ型の前に「?」を記述する。今回の例ではintの前に?を記述することで、変数「MaybeANumber」をオプション型の変数として定義している。
オプション型の変数に値を代入する
set MaybeANumber := option{42}
オプション型の変数に値を代入するには、optionを使用してオプション型で作成した値を使用する。optionの後に{}を記述し、その中で代入する値を記述する。
set MaybeANumber := false
オプション型の変数には「false」を代入することができ、これは変数に値が入っていないことを表す。
オプション型の変数の値を参照する
if (Number := MaybeANumber?):
オプション型の変数を参照には、変数の後ろに「?」を記述する。
オプション型の変数を参照する場合、変数に値が入っていない場合は失敗したとみなされるため、失敗コンテキスト内で記述する必要がある。
使用例
my_device := class<concrete>(creative_device):
var SavedPlayer : ?player = false
@editable
PlayerSpawn : player_spawner_device = player_spawner_device{}
@editable
Trigger : trigger_device = trigger_device{}
OnBegin<override>() : void =
PlayerSpawn.PlayerSpawnedEvent.Subscribe(OnPlayerSpawned)
OnPlayerSpawned(Player : player) : void =
set SavedPlayer = option{Player}
if (TriggerPlayer := SavedPlayer?):
Trigger.Trigger(TriggerPlayer)
公式ドキュメントに記載されている使用例。
Player型の変数「SavedPlayer」を作成し、型の前に「?」を記述してオプション型であることを定義している。falseで初期化しているので、この変数は値が無いことを表している。
ゲームが開始され、設定したプレイヤースポナーでプレイヤーがスポーンしたら「OnPlayerSpawned」関数が処理される。
「OnPlayerSpawned」関数では、スポーンしたプレイヤーの情報を変数「SavedPlayer」にセットし、変数「SavedPlayer」から参照した値を使用してトリガーを起動している。
コメント