lib, 一个dll, pdb看需要
环境配置
C++这边肯定要链接mono.lib, 所以dll要拷贝到exe的目录
除了mono本身外, 还需要.net的runtime assembly, 最精简的情况只需要一个...C++调用脚本(DLL)里的东西比较方便, mono的embed api很全
C#调用C++的话, 需要把C++的类在C#这边做一下映射, 有两种方式:
InternalCall: 直接用mono api...热更新
虽然.net也支持直接从代码转换成可以运行的东西, 但是这里还是参考Unity把脚本都编译成DLL
热更新的基本原理: 检测到脚本的DLL发生改变就重新载入
mono是以domain为单位load...解决办法有两个: 一是从内存加载, 二是先卸载再编译
加载后需要还原卸载前的对象状态, 这可以通过序列化来实现
C#的编译时间基本上可以忽略, 游戏运行时这边脚本一改, 卡个几帧就可以继续用新的脚本继续跑了...是用Boo实现的, 这也解释了为什么Unity会支持Boo...具体的实现在GitHub上可以找到
虽然JS和Boo比C#更像脚本, 但它们都是强类型的, 除了写代码时敲的字符少点我觉得不如C#, 因为啥