通过将 WriteAccessRequiredAttribute 与 ReadOnlyAttribute 结合使用,您就可以指定哪个结构方法和属性需要调用写入访问。
在原生容器中添加 ReadOnly 属性,即表明只能在此容器中执行读取数据的操作。在这种情况下,无法使用容器中用于修改数组的方法和属性。WriteAccessRequired 属性指示在带有 ReadOnly 注释的容器上无法使用哪些方法和属性。
using Unity.Collections.LowLevel.Unsafe; using Unity.Collections; using UnityEngine;
[NativeContainer] public struct MyList<T> where T : struct { public int Length { get; private set; }
[WriteAccessRequired] public void Grow(int capacity) { // ... } }
public class MyMonoBehaviour : MonoBehaviour { [ReadOnly] MyList<int> readOnlyList;
MyList<int> writableList = new MyList<int>();
public void OnUpdate() { writableList.Grow(10); // Ok readOnlyList.Grow(10); // Illegal } }