通过将 WriteAccessRequiredAttribute 与 ReadOnlyAttribute 结合使用,您就可以指定哪个结构方法和属性需要调用写入访问。
在原生容器中添加 ReadOnly 属性,即表明只能在此容器中执行读取数据的操作。在这种情况下,无法使用容器中用于修改数组的方法和属性。[WriteAccessRequired] 属性指示在带有 [ReadOnly] 注释的容器上无法使用哪些方法和属性。
[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
}
}