Описание
По умолчанию нативные контейнеры отслеживаются системой безопасности, чтобы избежать условий гонки. Система безопасности воплощает в себе лучшие практики и с самого начала выявляет множество ошибок, связанных с условиями гонки.
Но иногда вам нужно указать доступ к заданиям и данным, который не вписывается в систему безопасности. Этот атрибут позволяет явно отключить систему безопасности для этого конкретного контейнера. Это дает вам полный контроль, но это также означает, что если вы, например, Dispose() NativeArray во время выполнения задания, система безопасности вообще не сможет выдавать вам никаких сообщений об ошибках. Скорее всего, в этой ситуации произойдет сбой Unity.
using Unity.Collections;
using Unity.Collections.LowLevel.Unsafe;
using Unity.Jobs;
struct MyJob : IJob
{
[NativeDisableContainerSafetyRestriction]
NativeArray unsafeArrayAccess;
public void Execute()
{
//...
}
}