1????首先將導出包運行看是否報錯±缆蹋可以跑起來再做如下操作脊僚。
????將Classes、Data党涕、Libraries三個文件夾和MapFileParser.sh文件復制到自己的iOS工程中。自己的iOS項目目錄:
2????將文件添加到項目中
????2.1????將Data文件夾以以下方式添加
2.2????將Classes巡社、Libraries文件夾按如下方式添加
2.3????如果Classes->Native目錄下有.h文件膛堤,需要全部刪除引用
????再刪除Libraries->libil2cpp文件夾的引用,操作同上
3????iOS工程的環(huán)境配置晌该,以Unity的項目為參考
????3.1? ? 添加應用庫? ? ?
????3.2? ? 添加頭文件和庫的搜索路徑? ??
????3.3 ? ?其他的一些配置
????????Other C Flag肥荔、Other Linker Flags
如果自己iOS項目中有pch文件,則將Prefix.pch里面的文件拷貝到自己的pch文件中朝群,并在合后的pch文件中添加#import "UnityAppController.h"
????3.4 ? ?添加用戶自定義的設置
4????修改main.m文件
把Classes/文件夾里面的main.mm里面的代碼燕耿,拷貝到Supporting
Files/下的main.m文件中,并把后綴改成.mm姜胖,修改如下圖
然后刪除Classe目錄下單main.mm文件誉帅。注意:一樣是刪除引用。
5? ? ?修改AppDelegate文件
????5.1?????.h文件增加unityController屬性
????????@property (strong, nonatomic) UnityAppController * unityController;
????5.2 ????.m文件做如下修改
6????修改UnityAppController.h文件
并增加兩個方法restartUnity右莱、hideUnityWindow
在UnityAppController.mm實現(xiàn)
7????新建Unity的顯示控制器
在新的Unity界面顯示時調(diào)用啟動startUnity的方法蚜锨,如有需要可以再調(diào)用切換場景的方法;
第二次啟動直接調(diào)用restartUnity的方法
8????iOS和Unity的調(diào)用方法
8.1? ? ? iOS調(diào)用Unity的方法:
三個參數(shù)分別是:物體名慢蜓、方法名亚再、參數(shù)
UnitySendMessage("Global", "UpdateUnityInfo", [@"show23" UTF8String]) ;
8.2? ? ?Unity調(diào)用iOS原生的方法
在Libraries文件下新建UnityToIOS文件夾,在此新建兩個文件如下:
9????常見問題
9.1? ? ? Control may reach end of non-void function:
解決辦法:方法末尾添加return NULL;
9.2? ? ? 編譯時遇到Permission denied:
解決辦法:Chmod +x?? / Users/…../MapFileParser.sh
9.3? ? ? ]Undefined symbols for architecture arm6: "_GetAppController",referenced from:
解決辦法:修改文件后綴為.mm