unity3D與iOS原生工程項(xiàng)目合并以及合并過程中的問題

由于公司項(xiàng)目的需要,需要將unity3D工程跟原生工程合并, 所以不得不接觸unity3D, 本文是將unity3D導(dǎo)出的iOS代碼移植到Xcode本地建的工程中, 上代碼:

首先,總體來說,總的步驟分為兩大塊, 第一,你需要從unity3D中導(dǎo)出Xcode第二,你需要將導(dǎo)出的iOS代碼部分移植到你想要的本地iOS項(xiàng)目中.

第一部分, unity3D導(dǎo)出Xcode項(xiàng)目

1.打開你的unity工程,然后點(diǎn)擊上邊菜單欄file中的build settings

1.png

2. 接著會彈出一個(gè)如下的框, 點(diǎn)擊switch platform 選擇iOS平臺,

3. 點(diǎn)擊player settings... 配置參數(shù)如下圖

4. 配置完成后點(diǎn)擊build, 等待完成,這個(gè)過程可能會時(shí)間長點(diǎn),稍安勿躁, 完成之后是這樣的

5.然后打開文件iOS文件夾是這樣的,我們需要的重要核心的代碼都在畫紅線的這幾個(gè)文件夾中,所以,我們下面就需要把這幾個(gè)畫紅線的文件夾拷貝到我們需要的iOS原生項(xiàng)目中.

第一部分導(dǎo)出Xcode工程已經(jīng)完成,這部分很簡單, 接著,我們就開始第二大部分,也是很容易出錯(cuò)的地方,尤其是配置需要注意.

第二部分, unity3D導(dǎo)出Xcode項(xiàng)目導(dǎo)入到原生的iOS項(xiàng)目中

1.Unity導(dǎo)出的工程中的bundleId要和你本地iOS項(xiàng)目的id一致

2.修改bit code為NO

3.刪除Main.storyboard,代碼設(shè)置控制器(方便切換window)

4.將Classes,Libraries,MapFileParser.sh拖入到項(xiàng)目(選中Copy items if needed,選中Create groups)

將Data拖入到項(xiàng)目(選中Copy items if needed,選中Create folder references)

注意:文件拖進(jìn)工程的方式不完全一樣,注意勾選的地方

5.添加framework(注意Optional的三個(gè))

6.添加Header Search Paths和Library Search Paths

7.other C Flags -> -DINIT_SCRIPTING_BACKEND=1

8.添加User-Defined (UNITY_RUNTIME_VERSION版本號與導(dǎo)出工程的Unity版本號需要一致)


9.添加Run Script


10.把Unity/Classes/Prefix.pch的代碼復(fù)制到新建的pct文件, 并把classes文件夾下的pct文件刪除,注意,這里的刪除并不是徹底的刪除, 而是從列表中刪除,選擇中間這個(gè), 以下步驟中所說的刪除都是這個(gè)意思,請牢記哈!

11. 將Classes/main.mm全部內(nèi)容復(fù)制到main.m 并把擴(kuò)展名改為.mm

12. 修改UnityAppController.h

13.在AppDelegate.h .m中添加如下代碼


到這里基本上已經(jīng)完成從本地iOS跳轉(zhuǎn)到Unity項(xiàng)目里了,接下來,是我在做的過程中遇到的問題.

1.Unknown type name 'UnityViewControllerBase'

解決辦法就是把它改成UIViewController


2.iOS本地應(yīng)用跳轉(zhuǎn)unity的時(shí)候出現(xiàn)黑屏

原因是你的u3d工程集成了EasyAR插件,而這個(gè)插件下有個(gè)Assets/Plugins/iOS/EasyARAppController.mm,

@interface EasyARAppController : UnityAppController,這是整個(gè)app啟動(dòng)時(shí)的第一個(gè)controller,自己修改合并這個(gè)controller就OK了

或者是將EasyARAppController.mm的內(nèi)容復(fù)制到你的自定義的子類中去,然后刪除引用也是OK的

看下圖

在UnityAppController.mm里這個(gè)方法中寫

然后就OK了

以上就是全部了呦,歡迎大家指正, 多多交流!!!

// 轉(zhuǎn)載請注明原地址呦!

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

相關(guān)閱讀更多精彩內(nèi)容

  • 前言 最近在實(shí)驗(yàn)室做了一個(gè)項(xiàng)目,用到了藍(lán)牙通訊和U3D的交互,都有很多坑,如:IOS與Unity3D界面之間的跳轉(zhuǎn)...
    Larrycal閱讀 23,954評論 34 53
  • 提示:2017年7月13日更新 相關(guān)文章:1>. Unity中文社區(qū)2>. IL2CPP 構(gòu)建大小優(yōu)化 前言:項(xiàng)目...
    小熊翻譯App閱讀 7,561評論 24 23
  • 圖文/王天鴻 四月二十三日! 這個(gè)被從日歷上圈定并命名的日子,與其說是用來讀書的日子,毋寧說是對書籍、閱讀、...
    王天鴻閱讀 742評論 2 2
  • 下午在微信朋友圈看到這樣一則感慨: 其實(shí)我是很認(rèn)可這位朋友的說法的,就像十年前俞敏洪在《贏在中國》中的一段話,現(xiàn)在...
    8c8392d58a4a閱讀 524評論 0 0
  • 今年我二十四五歲,身處最基層,只為了初心而常常沒日沒夜加班加點(diǎn)。入夏,每當(dāng)看到路上的姑娘們打扮得一個(gè)個(gè)像小仙女...
    冬月初十閱讀 247評論 0 1

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