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 同时使用