【Unity】打包编译错误:‘NativeArrayUnsafeUtility‘ does not contain a definition for ‘SetAtomicSafetyHandle‘

        我再代码里使用了 NativeArrayUnsafeUtility.SetAtomicSafetyHandle 这个 API,但是在打 Android 包的时候出现了编译错误:

        'NativeArrayUnsafeUtility' does not contain a definition for 'SetAtomicSafetyHandle'

        但实际上这个代码应该是存在的: 

        这就非常诡异了,而且我在国内网站查资料也没有说法,Unity 的官方文档也没有什么说法。之后我在国外论坛上看到有人报相同的错误:

NativeArrayUnsafeUtility seems to not work in builds - Unity ForumI've been using it for SetAtomicSafetyHandle. It works fine in editor, but when I attempt to build the project, I get a build error claiming that...https://forum.unity.com/threads/nativearrayunsafeutility-seems-to-not-work-in-builds.1153067/        说是需要加上 ENABLE_UNITY_COLLECTIONS_CHECKS 的宏:

#if ENABLE_UNITY_COLLECTIONS_CHECKS 
    NativeArrayUnsafeUtility.SetAtomicSafetyHandle(ref job.HeightMap1, AtomicSafetyHandle.Create());
    NativeArrayUnsafeUtility.SetAtomicSafetyHandle(ref job.HeightMap2, AtomicSafetyHandle.Create());
    NativeArrayUnsafeUtility.SetAtomicSafetyHandle(ref job.HeightMap3, AtomicSafetyHandle.Create());
    NativeArrayUnsafeUtility.SetAtomicSafetyHandle(ref job.HeightMap4, AtomicSafetyHandle.Create());
#endif

         按照论坛里的说法,这个 SetAtomicSafetyHandle 在打包出项目的时候是不需要的,只在编辑器下才需要这个操作。

        但是我还没有测试过真机是否正确,后面会测试下真机的结果,再补充上来。

.

猜你喜欢

转载自blog.csdn.net/cyf649669121/article/details/131572806