【UEFN】Verse言語のforについて徹底解説【初心者向け】

目次

forとは 

forは公式ドキュメントでこのように説明されています。 

for 式は、処理を一定回数反復し、同じ回数、コードブロックの式を繰り返します。 

https://dev.epicgames.com/documentation/ja-jp/uefn/for-in-verse 

上記の通り、forは回数を指定し、その回数分式を繰り返すことが出来ます。 

forの構文

for(回数の指定): 
コードブロック 

回数の指定に入れることができるのは範囲配列マップです。 

範囲の例

for (X:=0..3) 
    Print(”{X}”) 

Xの部分は自分で決めます。 
以下のコードと同じ意味になります。
この式により4回Printが実行されます。 

Print(”0”) 
Print(”1”) 
Print(”2”) 
Print(”3”) 

配列の例

値のみ使う場合

for(X: array{1,2,4}): 
    Print(”{X}”) 

配列の場合:の後ろの=はないので注意が必要です。 
以下のコードと同じ意味になります。
この式により3回Printが実行されます。 

Print(”1”) 
Print(”2”) 
Print(”4”) 

インデックスと値を使う場合

配列のインデックスも使いたい場合、このようになります。 

for(X - >Y: array{1,2,4}): 
    Print(”{X}and{Y}”) 

Xにインデックス、Yに値が入ることになります。
 以下のコードと同じ意味になります。
この式により以下のように3回Printが実行されます。

Print(”0and1”) 
Print(”1and2”) 
Print(”2and4”) 

マップの例

値のみ使う場合

for (X:map{ 1=>3, 0=>7 }): 
    Print(”{X}”) 

Xにはマップの値の方が入ることになります。 
この式により以下のように2回Printが実行されます。 

Print(”3”) 
Print(”7”) 

キーと値どちらも使いたい場合

for (X->Y : map{ 1=>3, 0=>7 }): 
    Print(”{X}and{Y}”) 

Xにキー、Yに値が入ることになります。 
マップの場合も配列と同様に:の後ろの=は書きません。 

この式により以下のように2回Printが実行されます。 

Print(”1and3”) 
Print(”0and7”) 

具体例

ゲーム開始時に全てのプレイヤーに50ダメージ与えるコードです。

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

 

hello_world_device := class(creative_device): 
    var Players : []player = array{} 

     
     OnBegin<override>()<suspends>:void= 
        set Players = GetPlayspace().GetPlayers() 
        for (Player : Players ,Fort := Player.GetFortCharacter[]): 
            Fort.Damage(50.0) 

コードの解説

13行目でゲーム開始時にゲームにいる全てのプレイヤーのplayer情報を取得しています。 

14行目で全てのPlayers配列の要素からfort_character情報を取得し、
それぞれにDamage関数を実行しています。 

forの解説 

for (Player : Players ,Fort := Player.GetFortCharacter[])
    Fort.Damage(50.0) 

指定回数の部分にはPlayers配列が入っています。 
全てのPlayers配列の要素に対してコードブロックの式を実行することになります。 

また、括弧内にfort := Player.GetFortCharacter[]が入っていますが、forの括弧内は失敗コンテキストであるため、失敗する可能性がある式を入れるために使うこともできます。 
そして、コードブロックで全てのプレイヤーにダメージを与えています。 

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

この記事を書いた人

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

コメント

コメントする

目次