iOS 集成unity 随着unity版本的升级,老式unity(例如2017版本)的集成方式对于 2020 + 版本就不适用了,而且老式的unity集成相当复杂。新版的集成还相对容易一些。

这里我只说我的集成步骤

步骤一、

Untiy开发同学导出的unity项目理论上来说是可以完好的运行在真机上的。理论上它包含如下文件:

ios 集成聊天功能 苹果手机集成_桥接


一般情况下直接在真机上运行会有两种类型的错

①、xxx/Unity-iPhone-cvdhbhhmplmngpebfiayrtudphkj/Build/Intermediates.noindex/Unity-iPhone.build/ReleaseForRunning-iphoneos/UnityFramework.build/Script-9D3DC87A221D90AB00B2960B.sh: line 2: /Users/leihuaiwang/Desktop/IosTest2020112314/MapFileParser.sh: Permission denied解决这种问题非常简单,找到Unity项目中的MapFileParser.sh 文件 ,打开终端运行如下代码

chmod +x /*MapFileParser 文件路径/

如图:

ios 集成聊天功能 苹果手机集成_桥接_02


②、另一个错则是选择真机运行的账号即可

ios 集成聊天功能 苹果手机集成_桥接_03


我自己的Unity 项目到此就可以运行在真机上了,若是还有其他报错,我个人认为是Unity项目导出的不正确,具体的其他情况我也没遇到。个人认为只有能运行在真机上的Unity 才能导入到项目中去。

ios 集成聊天功能 苹果手机集成_unity_04


步骤二、

将整个Unity文件导入到项目中去,注意:是把项目文件导入到自己的项目中去,如下:

ios 集成聊天功能 苹果手机集成_桥接_05


步骤三、

将Unity项目导入到原生项目中,导入前,show the project navigator中不包含Unity 工程,我们要做的就是把工程导入。

点击“+” 选择“add File to xxx

ios 集成聊天功能 苹果手机集成_桥接_06


ios 集成聊天功能 苹果手机集成_桥接_07


点击add 按钮后 结果如下:

ios 集成聊天功能 苹果手机集成_桥接_08


理论上来说 导入原生工程中的unity工程也是可以成功运行在真机上的。

ios 集成聊天功能 苹果手机集成_库编译_09


步骤四、①、 修改Data文件夹的可引用范围

ios 集成聊天功能 苹果手机集成_ios_10


②、修改桥接文件的私密度 为 Public

ios 集成聊天功能 苹果手机集成_unity_11


③、将UnityFramework.framework 导入原生工程

找到UnityFramework.framework。

ios 集成聊天功能 苹果手机集成_ios 集成聊天功能_12


如果该framework 为红色,则表示本地没有这个库,选择Unity 工程编译一下即可④、选中framework库 右键 选择 show in finder 即可找到该framework在mac上的路径地址

ios 集成聊天功能 苹果手机集成_ios_13


这里要注意一下这个 NativeCallProxy.h 这个文件,它是原生和Unity的桥接类文件,若是不存在这个文件,则在Unity项目中找到该文件,copy到该位置即可,注意copy后需要重新编译Unity 工程才能生效。⑤、framework库导入原生工程

找到原生工程,进行如下步骤

ios 集成聊天功能 苹果手机集成_unity_14


点击了 Add Files 后弹出如下界面

这个时候我们很难找到unityFramework.framework,没关系,把我们上述所找到的库的文件,拖拽到该位置就可以添加了

ios 集成聊天功能 苹果手机集成_库编译_15


ios 集成聊天功能 苹果手机集成_库编译_16


点击open 就可以将framework库导入到原生工程了。

ios 集成聊天功能 苹果手机集成_桥接_17


有文件说该库需要时可打开状态才可以正常使用,以我经验来看是否能打开,不影响。

至此集成便完成了。

注意:framework导入到项目中后 一定要把该库编译一下success才行
注意:framework导入到项目中后 一定要把该库编译一下success才行
注意:framework导入到项目中后 一定要把该库编译一下success才行
注意:framework导入到项目中后 一定要把该库编译一下success才行

运行原生项目若是可以正常运行,说明导入很成功。
下篇博客我将说明如何使用。