iOS原生工程接入unity導(dǎo)出的Xcode工程

1????首先將導(dǎo)出包運行看是否報錯。可以跑起來再做如下操作。

????將Classes、Data、Libraries三個文件夾和MapFileParser.sh文件復(fù)制到自己的iOS工程中。自己的iOS項目目錄:

2????將文件添加到項目中

????2.1????將Data文件夾以以下方式添加

2.2????將Classes、Libraries文件夾按如下方式添加

2.3????如果Classes->Native目錄下有.h文件,需要全部刪除引用

????再刪除Libraries->libil2cpp文件夾的引用,操作同上

3????iOS工程的環(huán)境配置,以Unity的項目為參考

????3.1? ? 添加應(yīng)用庫? ? ?

????3.2? ? 添加頭文件和庫的搜索路徑? ??

????3.3 ? ?其他的一些配置

????????Other C Flag、Other Linker Flags

如果自己iOS項目中有pch文件,則將Prefix.pch里面的文件拷貝到自己的pch文件中,并在合后的pch文件中添加#import "UnityAppController.h"

????3.4 ? ?添加用戶自定義的設(shè)置


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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容