Unsafe code requires the `unsafe' command line option to be specified
在Unity开发中,如果涉及到指针的使用,需要自己定义预处理器指令。控制在编译时可以使用哪些功能代码,比如UNSAFE。为此,必须添加带有其他指令的文本文件至“资源 (Assets/)” 文件夹下。文件的名称取决于使用的语言,扩展名为.rsp:
对应关系如下:
C# <Project Path>/Assets/smcs.rsp
C# - Editor Scripts <Project Path>/Assets/gmcs.rsp
UnityScript <Project Path>/Assets/us.rsp
Boo <Project Path>/Assets/boo.rsp
例如,如果在smcs.rsp文件中包含独立行 "-define:UNITY_DEBUG",定义的 UNITY_DEBUG 将作为 C# 脚本的全局定义,编辑器脚本除外。
每次更改 .rsp 文件,都需要重新编译才能保证有效。只需更新或重新导入单个脚本 (.js, .cs or .boo) 文件即可。
如果只需要修改全局定义,应使用播放器设置 (Player Settings) 中的脚本定义符号 (Scripting Define Symbols),因为这将覆盖所有编译器。若选择 .rsp 文件,就必须为 Unity 使用的每个编译器提供一个文件,并且将无法了解何时使用一个或另一个编译器。
.rsp 文件的使用在 smcs 应用程序(包含在编辑器安装文件夹中)的帮助部分有详细说明。可以运行 "smcs -help" 了解更多信息。同时,请务必记住,.rsp 文件必须与调用的编译器匹配。例如,如果针对网络播放器,smcs 将与 smcs.rsp 同时使用;如果针对独立播放器,gmcs 将与 gmcs.rsp 同时使用;如果针对 MS 编译器,csc 将与 csc.rsp 同时使用