バリアントクラス

概要

バリアントはGodotの最も重要なデータ型であり、エンジンで最も重要なクラスです。 バリアント型は20バイトしか使用せず、その中にほぼすべてのエンジンデータ型を格納できます。 バリアントは、情報を長期間保持するために使用されることはほとんどなく、代わりに主に通信、編集、シリアル化、および一般的なデータの移動に使用されます。

バリアントは次のことができます:

  • ほぼすべてのデータ型を格納する
  • 多くのバリアント間で操作を実行します (GDScript はバリアントをアトミック/ネイティブデータ型として使用します)。
  • ハッシュ化して、他のバリアントとすばやく比較できます
  • データ型間の安全な変換に使用します
  • 呼び出しメソッドとその引数を抽象化するために使用されます(Godot はバリアントを介してすべての関数をエクスポートします)
  • 呼び出しを延期したり、スレッド間でデータを移動したりするために使用します。
  • バイナリとしてシリアル化され、ディスクに保存されるか、ネットワーク経由で転送されます。
  • テキストにシリアル化し、値と編集可能な設定を印刷するために使用します。
  • エクスポートされたプロパティとして機能し、エディタがユニバーサルに編集できるようにします。
  • 辞書、配列、パーサーなどに使用できます。

基本的に、Variantクラスのおかげで、Godot自体を書くのは、C++には一般的ではない非常に動的な構成体を簡単に作成できるので、ずっと簡単な作業でした。今日はVariantの友達になってください。

参照:

コンテナ: 辞書と配列

どちらもバリアントを使用して実装されます。ディクショナリは、キーとして使用される任意のデータ型を他の任意のデータ型に一致させることができます。配列には、バリアント型の配列だけが格納されます。もちろん、バリアント型にはDictionaryとArrayを格納できるため、より柔軟性があります。

コンテナを変更すると、コンテナへのすべての参照が変更されます。マルチスレッドアクセスが必要な場合は、Mutexを作成してロックする必要があります。

Godot 3.0 では、コンテナの書き込みコピー(COW)モードのサポートが削除されました。