2019最新 iOS Native项目集成Unity3D
經歷了幾天的不斷嘗試解決各種報錯和網上尋得的資料最終成功在iOS項目中集成Unity3D,現有的資料都比較老,多數不適用或者說集成完報很多錯誤。
言歸正傳,目前我所做的集成是基于Xcode10.1(最新為10.2),Unity2018.2.21f1 (建議先在文章最后看一下關于UnityPlayerSetting的設置)
-
步驟一:新建文件夾,里面存放兩個文件,一個是Xcode Native工程(以下簡稱A工程),另一個是Unity導出的Xcode工程(以下簡稱B工程)
-
步驟二:在B工程中找到Classes,Libraries和Data拷貝到A工程的根目錄中,然后將Classes,Libraries通過Add file的方式添加到項目中,注意勾選Create groups;data也添加到項目中勾選Create folder references。
-
步驟三:在項目根目錄中新建PCH文件,然后將Classes下的Prefix.pch文件中的全部代碼復制到剛才創建的PCH文件中,并在代碼中添加#import "UnityAppController.h"
將PCH文件的路徑添加到Target->Build Setting->Prefix Header中 -
步驟四:在Target->Build Setting中進行以下配置:
a.設置Enable Bitcode:NO;
b.Other Linker Flags添加(注意:一定要按順序)-weak_framework,CoreMotion,-weak-lSystem,-licucore
c.對Classes和Libraries的路徑進行配置;
在Header Search Paths中添加:
$(SRCROOT)/Classes
$(SRCROOT)/Classes/Native
$(SRCROOT)/Libraries/libil2cpp/include
在Library Search Paths中添加:
$(PROJECT_DIR)/Libraries(如有,則不需要重復添加)
$(PROJECT_DIR)/Libraries/Plugins/iOS
d.Other C Flags添加 -DINIT_SCRIPTING_BACKEND=1 和 -DRUNTIME_IL2CPP=1
e.設置Enable C++ Runtime Types:NO
f.設置Overriding Deprecated Objective-C Methods:Yes
g.設置Unintentional Root Class:Yes
h.點擊如下圖的+號,添加4個Add User-Defined Setting
GCC_THUMB_SUPPORT : NOGCC_USE_INDIRECT_FUNCTION_CALLS : NO
UNITY_RUNTIME_VERSION : 2018.2.21f1(以自己Unity實際版本號為準)
UNITY_SCRIPTING_BACKEND : il2cpp
-
步驟五:在Target->Build Phases中導入以下庫(建議以自己Unity導出的Xcode項目對應添加):
Classes文件夾下的main.mm中全部代碼復制到Xcode生成的main.m中;將main.mm代碼中的"UnityAppController"修改成"AppDelegate";
將main.m修改為main.mm然后進行如圖操作:-
步驟六:把Classes文件夾下的UnityAppController.h進行如圖修改(報錯是因為AppDelegate中還未做修改)
-
步驟七:對AppDelegate進行如下修改:
-
步驟八:最后實現iOS界面和Unity界面相互切換
a.iOS界面切換到Unity界面; 在ViewController.m中創建一個button,點擊觸發方法如下:
b.Unity界面切換到iOS界面; 在unityWindow上添加一個button,如下:
補充Unity3D中需要對PlayerSettings做的設置:
1.取消Auto Graphics API的勾選并移除Metal選擇OpenGLES2(補充:取消勾選,選擇Metal也能成功,根據相關報錯信息自行修改)
2.取消Strip Engine Code的勾選
報錯補充: 錯誤1:
只需要找到DeviceSettings.mm文件添加默認return 值錯誤2:
改寫成如下圖所示即可錯誤3:
需要在Other C Flags里添加支持.net4.0最終效果
可以動手嘗試,如有錯誤歡迎批評指正。聯系方式QQ:877479310
轉載于:https://juejin.im/post/5cac20bef265da036504d8cb
總結
以上是生活随笔為你收集整理的2019最新 iOS Native项目集成Unity3D的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: redis RedisTemplate实
- 下一篇: 震惊,竟然有人用Taro来。。。