Version: 2022.3

NativeDisableContainerSafetyRestrictionAttribute

class in Unity.Collections.LowLevel.Unsafe

切换到手册

描述

默认情况下,原生容器会由安全系统进行跟踪,以避免竞争条件。安全系统内部封装了最佳实践,并从一开始就捕获了许多竞争条件错误。

但有时,您需要指明不符合安全系统的作业和数据访问。借助此属性,您可以针对具体容器显式禁用安全系统。这为您提供了完全控制权限,但这也意味着,如果您在作业运行时对某个 NativeArray 执行 Dispose() 操作,安全系统将完全无法为您提供任何错误消息。在这种情况下,Unity 很可能会崩溃。

using Unity.Collections;
using Unity.Collections.LowLevel.Unsafe;
using Unity.Jobs;

struct MyJob : IJob { [NativeDisableContainerSafetyRestriction] NativeArray<int> unsafeArrayAccess;

public void Execute() { //... } }