dll要拷贝到exe的目录
除了mono本身外, 还需要.net的runtime assembly, 最精简的情况只需要一个mscorlib.dll, 其它的用到再加进去就可以
脚本的编译可以用mono的SDK...用SWIG的话只需要定义一个文件指明需要把哪些头文件导出给C#用, 然后粘合层的cpp和C#的包装代码都可以自动生成, 再集成到VC的build event中, 编译好工程直接就生成好C#这边引用的DLL...热更新
虽然.net也支持直接从代码转换成可以运行的东西, 但是这里还是参考Unity把脚本都编译成DLL
热更新的基本原理: 检测到脚本的DLL发生改变就重新载入
mono是以domain为单位load...解决办法有两个: 一是从内存加载, 二是先卸载再编译
加载后需要还原卸载前的对象状态, 这可以通过序列化来实现
C#的编译时间基本上可以忽略, 游戏运行时这边脚本一改, 卡个几帧就可以继续用新的脚本继续跑了...多语言支持
用Mono可以支持很多语言, Unity支持了三种: C#, Boo(Python), UnityScript(JavaScript)
Boo是Mono SDK里就带的语言扩展
UnityScript