一:大前提,需要把unity項目導(dǎo)出到xcode,需要注意的是player setting里面的Bundle Identifier,并且選擇Scripting Backend 為IL2CPP,Target Devicce 我這里選擇的是iPhone + iPad ,Target SDK 選擇 Device SDK
二:接下來將unity導(dǎo)出的工程文件“轉(zhuǎn)移”到我們的項目中
只需要上面5個文件/文件夾萧锉,且最后兩個文件無需引入到工程中,只要能在工程目錄中能找到就可以述寡。這里需要注意的是Data文件是Create folder references柿隙,其他的兩個(classes,Libraries)是Create groups。這樣鲫凶,第二步就結(jié)束了
三:項目中添加一些配置文件
1.因為我的項目設(shè)計AR功能禀崖,需要使用相冊的功能,所以在TARGETS->自己的工程名稱->Info添加??Privacy - Camera Usage Description 相機(jī)使用權(quán)限? 當(dāng)然螟炫,App Transport Security Settings也添加上吧
2.Built Settings 中添加的內(nèi)容較多
(1)Enable Bitcode->NO
(2)Architectures內(nèi)容如下波附,unity導(dǎo)出過程時對應(yīng)的,當(dāng)時我也有遇到這里的相關(guān)問題昼钻,總之先按照這樣配置吧
(3)Other Linker Flags 目前我這邊只有-ObjC
(4)Other C Flags 和 Other C++ Flags?
-DINIT_SCRIPTING_BACKEND=1
-DRUNTIME_IL2CPP=1? 方便復(fù)制掸屡,你懂得
(5)有關(guān)于Prefix Header? 我這里用的是unity原先的Prefix.pch,路徑方面根據(jù)你自己的工程目錄
(6)配置Header search paths
配置Library search Paths
(7)我看了很多文章然评,一些簡主喜歡在User-Defined里面添加?xùn)|西仅财,我這邊也沒有添加。
四:下面說一下Build Phases里面的內(nèi)容
1)在Filter中搜索main碗淌,把Compile Sources中把Classes里面的main.mm去掉(切記盏求,我這里吃了這點很多虧)
2) framework 慢慢引入吧抖锥,注意一些optional點,我踏過的坑碎罚,讓小伙伴們少走點彎路
3)添加一個Run Script?
"$PROJECT_DIR/MapFileParser.sh"(這個莫名其妙的文件用到了吧)
五:開始擼代碼吧
1.將自己的main.m改成main.mm磅废,然后把Classes中的main.mm內(nèi)容復(fù)制到我們的main.mm文件中,然后將對應(yīng)的內(nèi)容改為
很多文章用的是constchar* AppControllerClassName ="AppDelegate";荆烈,但我這里遇到問題还蹲,所以我建議遇到問題用我的方式吧
2.找到UnityAppController.h文件
3.找到UnityAppController.mm文件
extern"C"voidezarUnitySetGraphicsDevice(void* device,intdeviceType,inteventType);
extern"C"voidezarUnityRenderEvent(intmarker);
重寫shouldAttachRenderDelegate,這是防黑屏處理
4.AppDelegate文件
和很多文章一樣耙考,我也采取多個window的方式。感覺這種方式思緒比較清晰潭兽!
文章持續(xù)跟進(jìn)倦始。。山卦。未完(之后將提到接入過程中遇到的問題)