我的工作是C++开发,主要是做底层,其中绝大部分是给Unity调用的,以下是我的脚印,希望不会重蹈覆辙
- Unity具有强大的跨平台性,但是使用到库文件不尽相同,例如Android中就使用so库文件,Windows中用dll文件,想要编译到不同平台,就要先将源码编译成相应平台的库文件
- Unity打包成apk,需要在真机调试,电脑上会有问题
- 调试Unity程序异常关闭,可查看Unity日志
- 委托传递字段或属性至DLL中,要用static修饰,不然会出现未知错误。
- C++和C#间传递方法,最好加上“__stdcall”修饰,带有参数的时候必须要加。
- C++函数指针接收C#传递的委托,指针要用“__stdcall”修饰。
- 渲染不出可能是GPU的API版本问题,可选择不同的API版本测试
- IOS下不支持JIT编译,必须使用FULL AOT模式,参照Mono在Full AOT模式下的限制
- 非Windows环境下,开发Unity插件,建议使用MonoDevelop,跨平台性更好,当然,VS添加上其他插件也可以达到效果;Windows环境下,建议使用VS。
持续更新......