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

    BurstDiscard 属性

    Burst のコンパイル対象コードに含まれない C# コードを実行する際に、マネージオブジェクトを、Burst 内でコードの該当部分をコンパイルせずに使用したい場合があります。このためには、以下のようにメソッドで [BurstDiscard] 属性を使用します。

    [BurstCompile]
    public struct MyJob : IJob
    {
        public void Execute()
        {
            // 完全な .NET ランタイムから実行される場合のみ実行されます
            // [BurstCompile] 属性を指定してこのジョブをコンパイルすると
            // このメソッド呼び出しは破棄されます
            MethodToDiscard();
        }
    
        [BurstDiscard]
        private static void MethodToDiscard(int arg)
        {
            Debug.Log($"This is a test: {arg}");
        }
    }
    
    Note

    [BurstDiscard] が指定されたメソッドは戻り値を持ちません。

    ref または out の各パラメーターを使用すると、Burst とマネージのどちらでコードを実行するかを指定できます。

    [BurstDiscard]
    private static void SetIfManaged(ref bool b) => b = false;
    
    private static bool IsBurst()
    {
        var b = true;
        SetIfManaged(ref b);
        return b;
    }
    
    トップに戻る
    Copyright © 2023 Unity Technologies — 商標と利用規約
    • 法律関連
    • プライバシーポリシー
    • クッキー
    • 私の個人情報を販売または共有しない
    • Your Privacy Choices (Cookie Settings)