unity3D-iOS工程整合爬過的坑~
好久好久沒有寫博了~ 最近換了一份有意思的新工作,也是當下最熱門的新技術,AR技術。筆者之前一直是做iOS開發的,接觸了一門全新的技術,興奮了好久好久,筆者也快轉行做unity3D的開發了~AR技術真的挺有意思,不過短短的一個月時間遇到的坑比之前做iOS開發三年遇到的坑還多~ 好了,本文主要講述unity3D導出的工程和iOS工程整合的問題~也是筆者做一個記錄吧~當然網上也有很多文章寫 這個的~ 不過我試過所有的文章里面講的方法,都沒有成功,最后還是在國外一個老外的視頻里面找到了方法~ 不過也沒有成功,還有許許多多的小坑~ 下面開始講述正文吧~
第一步unity3D導出iOS工程~
如何導出iOS工程,查看網上教程~導出后的文件目錄如下
第二步將一些文件導入自己的工程項目中
將Classes 和 Libraries 文件夾以 下面的方式導入自己的工程中
將Data 文件夾以下面的方式導入工程中
第三步刪除Native下所有.h文件的引用
刪除Native下所有.h文件的引用,注意里面不僅僅只有.h 文件,,還有.cpp文件
第四步刪除libil2cpp引用~
第五步添加引用庫
添加引用庫,注意有三個是optional ~
第六步Build Settings
在 other Linker Flags 添加
-weak_framework CoreMotion -weak-lSystem
在Header Search Path 添加下面這些頭文件引用~
\({SRCROOT}/../../iOS/unity2iOS \){SRCROOT}/../../iOS/unity2iOS/Classes
\({SRCROOT}/../../iOS/unity2iOS/Classes/Native \){SRCROOT}/../../iOS/unity2iOS/Libraries
\({SRCROOT}/../../iOS/unity2iOS/Libraries/libil2cpp/include \){SRCROOT}/../../iOS/unity2iOS/Libraries/Plugins/iOS
在Library Search Path 中添加
\({SRCROOT}/../../iOS/unity2iOS \){SRCROOT}/../../iOS/unity2iOS/Libraries
${SRCROOT}/../../iOS/unity2iOS/Libraries/Plugins/iOS
在other C Flags 中添加 -DINIT_SCRIPTING_BACKEND=1 同是在 other C++ Flags中出現
改為C99
改PCH
C++做如下設置
跟着下面的圖片做設置更改
在user-Defined 添加如下
GCC_THUMB_SUPPORT NO
GCC_USE_INDIRECT_FUNCTION_CALLS NO
UNITY_RUNTIME_VERSION 5.3.4f1
UNITY_SCRIPTING_BACKEND il2cpp
第七步修改PCH文件
把Classes下面的Perfix.pch中的代碼全部拷貝到自己項目的PCH 並且在自己的項目的PCH 中添加 #import "UnityAppController.h"
當你走完上面七步之后,下面才是真正的坑開始的地方~ 筆者使用的是unity做Vuforia的開發,其中涉及到的坑相信大家也被坑了好久~ 不過最后筆者得出了兩行代碼~ 解決了一切問題~
我在unityAppController 中創建了一個Appdelegate,並且把unityView 和Window 傳過去了~ 代碼后面有人問到再補上~ 歡迎有遇到同樣坑的小伙伴在下面提問題,筆者會定時更新文章並把解決問題附上~