Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

バリアントクラス

概要

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

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

  • ほぼすべてのデータ型を格納する

  • 多くのバリアント間で操作を実行します (GDScript はバリアントをアトミック/ネイティブデータ型として使用します)。

  • ハッシュ化して、他のバリアントとすばやく比較できます

  • データ型間の安全な変換に使用します

  • 呼び出しメソッドとその引数を抽象化するために使用されます(Godot はバリアントを介してすべての関数をエクスポートします)

  • 呼び出しを延期したり、スレッド間でデータを移動したりするために使用します。

  • バイナリとしてシリアル化され、ディスクに保存されるか、ネットワーク経由で転送されます。

  • テキストにシリアル化し、値と編集可能な設定を印刷するために使用します。

  • エクスポートされたプロパティとして機能し、エディタがユニバーサルに編集できるようにします。

  • 辞書、配列、パーサーなどに使用できます。

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

リファレンス:

コンテナ: 辞書(Dictionary )と配列(Array)

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

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

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

リファレンス: