docs.unity3d.com
    目次を表示する/隠す

    静的読み取り専用フィールドと静的コンストラクターのサポート

    Burst では、すべての静的フィールドとすべての静的コンストラクターをコンパイル時に評価します。1 つの構造体の静的フィールドと静的コンストラクターはすべて一緒に評価されます。

    Burst のコンパイル対象となる構造体に読み取り専用ではない静的フィールドがある場合、コンパイルエラーが発生します。Burst がサポートしているのは、読み取り専用の静的フィールドだけだからです。

    Burst で静的フィールドまたは静的コンストラクターを評価できなかった場合、その構造体のすべてのフィールドとコンストラクターがエラーになります。

    コンパイル時の評価に失敗した場合、Burst ではフォールバックとして、ランタイムに 1 回呼び出される初期化関数にすべての静的初期化コードをコンパイルします。つまり、コードには Burst との互換性が必要であり、コンパイル時の評価に失敗した場合はコンパイルに失敗します。

    例外として、静的な読み取り専用の配列フィールドを配列コンストラクターまたは静的データから初期化する場合に限り、このフィールドを初期化できます。

    • static readonly int[] MyArray0 = { 1, 2, 3, .. };
    • static readonly int[] MyArray1 = new int[10];

    言語のサポート

    Burst では、外部関数と関数ポインターの呼び出しはサポートされません。

    静的な読み取りフィールドとコンストラクターでは、以下の基本言語を使用可能です。

    • マネージ配列
    • 文字列
    • 限定的な intrinsic のサポート:
      • Unity.Burst.BurstCompiler.IsEnabled
      • Unity.Burst.BurstRuntime.GetHashCode32
      • Unity.Burst.BurstRuntime.GetHashCode64
      • ベクトル型のコンストラクション
    • 限定的な intrinsic アサーションのサポート:
      • UnityEngine.Debug.Assert
      • NUnit.Framework.Assert.AreEqual
      • NUnit.Framework.Assert.AreNotEqual
    • シンプルな throw パターン。評価時に例外がスローされるとコンパイルエラーになります。
    トップに戻る
    Copyright © 2023 Unity Technologies — 商標と利用規約
    • 法律関連
    • プライバシーポリシー
    • クッキー
    • 私の個人情報を販売または共有しない
    • Your Privacy Choices (Cookie Settings)