方案一:将Unity导出Xcode 工程中的源码导入到原生工程
Unity工程设置
- 在play setting 设置中取消选中 'Auto Graphics API' ,只选择OpenGLES2,去掉Metal
- Scripting Backend 选中 IL2CPP
- 注意若选择导出为真机调试,则不能用模拟器测试否则崩溃。
Unity导出工程和iOS工程融合
Unity工程和不使用cocospods项目的融合
Unity工程和使用了cocospods项目的融合
- xcconfig中的GCC_PREFIX_HEADER删掉
- 配置文件项目中与cocospod相同的,注意整合,需要结合两者的内容进行拼接。
- 将GCC_C_LANGUAGE_STANDARD参数改为GNU99
- CLANG_CXX_LANGUAGE_STANDARD参数改为C++11。
- 在原生项目下新增一个子目录Unity,将Unity生成项目中的Classes,Data,Libraies,MapFileParse, MapFileParse.sh文件复制到该子项目中。配置文件中的UNITY_IOS_EXPORTED_PATH,直接就填写改子目录。
Bug处理
- Functions that differ only in their return type cannot be overloaded。
解决办法: 把Enable Strict Checking of objc_msgSend Calls 改为NO
方案二:把原生代码写在Unity导出Xcode 工程中
疑问:(待处理)
- Unity导出工程的Appdelegate没有了,如何自定义rootViewControlelr.
UnityAppController.h --> GetAppController