我正在使用Unity3D 4.3
并调用我创建的DLL
。
当试图调用它所拥有的唯一函数时:
void GetModelReferences(int &nVertices, float * vertices, int &nTriangles, int * triangles, float * normals, float * uvCoordinates);
团结给我一个错误:
Unsafe code requires the `unsafe' command line option to be specified
所以在MonoDevelop
我打开了Project->Assembly-Csharp options
并打开了unsafe
模式。
它减少了部分错误,但最后一个不会消失
Unsafe code requires the `unsafe' command line option to be specified
我该怎么办?
答案 0 :(得分:12)
转到项目属性页面,然后在Build
复选框Allow unsafe code
下查看。
这应该可以解决你的问题。
答案 1 :(得分:8)
以下是Unity3D 5.3对我有用的内容:
- 如果在Unity Build设置 - >播放器设置 - >其他设置," API兼容级别"是" .Net 2.0",在名为gmcs.rsp的Unity Asset文件夹下创建一个文件,将以下行添加到文件中:
-unsafe
关闭Unity并再次打开它。
- 如果" API兼容级别"是" .Net 2.0 Subset",上面的文件名应该是:smcs.rsp。
答案 2 :(得分:2)
答案在这里给出:http://answers.unity3d.com/questions/804103/how-to-enable-unsafe-and-use-pointers.html
你需要添加一个文件" smcs.rsp" (或" gmcs.rsp")在您的"资产"目录,其中包含以下行:
-unsafe
答案 3 :(得分:0)
您是否尝试过this?
看第五条评论
首先显示Unity.App的内容并深入到Contents / Frameworks / MonoCompiler.framework。
打开名为compile_any.pl的文件,然后在“#运行 csharp编译器“更改@Base_Args选项如下:
我的@base_args =($ mono_path,$ mcs_path,'-debug','-unsafe',' - target:library','-nowarn:0169',' - out:'。$ output,); < / p>
答案 4 :(得分:0)
您可以通过MonoDevelop更改设置: 转到解决方案文件树-> 解决方案->您的解决方案的扩展-> Assempely-CSharp->右键单击->选项->构建->常规->语言选项->启用“允许'不安全的'代码”
答案 5 :(得分:0)
如果您在一个统一项目中,请打开“项目设置”>“其他设置”>“允许不安全代码”