Identifier parameter
Identifier (text)
日本語環境では 識別子 (テキスト)
と表記される Function の Parameters の型です。
以下の公式ドキュメントの「Identifier parameter」の節に説明があります。
Functions - create your own actions, conditions or expressions - GDevelop documentation
This parameter enables auto-completion for previously entered values from other events with the same identifier name and scope.
上記のような説明があるのですが、個人的にパッと理解できなかったので、実際に利用しつつ挙動を確認したいと思います。
確認の準備
Function を作成
以下で、それぞれの Parameters を示します。
TestIdentifierScopedObjectAndScene
TestIdentifierScopedObject
ここでポイントなのは、1つ目の引数 IdScopedObject
の Identifier name
が、上記の TestIdentifierScopedObjectAndScene
と同じになっていることです。
2つ目の引数 IdScopedObject2
は Identifier name
に同じものがありません。
3つ目の引数 IdScopedObject3
は Identifier name
は同じですが、Scope が異なります。
シーンの設定
上記のように Sprite を2つ用意します。
挙動確認
ここからはイベントシートに記載します。
まずは、Character1
に対して、Object と Scene を scope とした引数をそれぞれ文字列で渡します。
異なるオブジェクトに対しての挙動
異なるオブジェクトに対して、同じ Function (TestIdentifierScopedObjectAndScene
) を呼び出します。
上記のように IdScopedScene
つまり Scope が Scene の引数のみ候補が表示されます。
逆に IdScopedObject
つまり Scope が Object の引数は候補がでません。
同じオブジェクトに対しての挙動
続いて同じオブジェクトに対して、異なる Function (TestIdentifierScopedObject
) を呼び出します。
上記のように IdScopedObject
つまり Scope が Object の引数は補完されます。
これは、Identifier name
が "Id_Scoped_Object"
で同じであるために補完されています。
一方で、2つ目、3つ目の引数は Identifier name
、Scope が異なるため補完されません。
ここでは試していませんが、Scope が Scene で Identifier name も同じであれば、同じオブジェクトでも当然補完されます。
まとめ
Identifier paramter の挙動に関して簡単にですが確認しました。
【GDevelop 素振り】チェックポイント機能 - Make Everything Games の中で、Player の Object variable 名を指定するのに使われていたのがきっかけですが、指定ミスを避けるためにも使ってみると便利だなと思える機能でした。