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

    SharedStatic 構造体

    Burst では、静的読み取り専用データへのアクセスについて基本的なサポートが提供されます。ただし、静的可変データを C# と HPC# で共有する場合は、SharedStatic<T> 構造体を使用する必要があります。

    以下の例に、C# と HPC# の両方で変更できる int 静的フィールドへのアクセス方法を示します。

        public abstract class MutableStaticTest
            {
                public static readonly SharedStatic<int> IntField = SharedStatic<int>.GetOrCreate<MutableStaticTest, IntFieldKey>();
    
                // IntField を特定するためのキーの種類を定義します
                private class IntFieldKey {}
            }
    

    この場合、C# と HPC# では以下のようにアクセスできます。

        // 共有静的構造体に書き込みます
            MutableStaticTest.IntField.Data = 5;
            // 共有静的構造体から読み取ります
            var value = 1 + MutableStaticTest.IntField.Data;
    

    SharedStatic<T> を使用する際には、以下の点に留意してください。

    • SharedStatic<T> の T では、データ型を定義します。
    • 静的フィールドを特定するには、コンテキストを提供します。それには、含める型 (上記の例では MutableStaticTest) のキーを作成し、フィールド (上記の例では IntFieldKey クラス) を特定して、それらのクラスを SharedStatic<int>.GetOrCreate<MutableStaticTest, IntFieldKey>() のジェネリック引数として渡します。
    • 共有静的フィールドに HPC# からアクセスする場合は、その前に必ず C# の静的コンストラクターから初期化してください。アクセス前に初期化しないと、未定義の初期化状態になる可能性があります。
    トップに戻る
    Copyright © 2023 Unity Technologies — 商標と利用規約
    • 法律関連
    • プライバシーポリシー
    • クッキー
    • 私の個人情報を販売または共有しない
    • Your Privacy Choices (Cookie Settings)