最近項目要嵌入cocos游戲,記錄下嵌入過程。
環(huán)境:
cocos游戲是cocoscreator3.8.1導(dǎo)出的可運行iOS工程, 里邊引入了大量的cocos庫文件,主要生成了兩個靜態(tài)庫boost_container.a和cocos_engine.a文件
方案1:
- 先跑一下cocos游戲,確保能正常跑通
- 復(fù)制cocos游戲項目的Other Linker Flags配置到iOS項目
- 復(fù)制cocos游戲項目的Header Search Paths配置到iOS項目
- 游戲資源要在Build Phases加腳本導(dǎo)入(cocos游戲文件有同名文件),注意SRC路徑要改成資源實際的路徑
- AppDelegateBridge.mm文件可以把渲染游戲的view傳過去(默認(rèn)window)
- SystemWindow.mm文件getWindowHandle方法判斷_externalHandle
set -e
SRC="${PROJECT_DIR}/GoldRed/Resource/Game"
DST="${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/data"
rm -rf "$DST"
mkdir -p "$DST"
rsync -av --delete "$SRC/" "$DST/"
- 接下來就是僑接文件和調(diào)用的問題了,比如游戲的開始、暫停、恢復(fù)、回調(diào)等都要暴露出相應(yīng)的接口,還有個問題就是cocos游戲默認(rèn)是拿keywindow當(dāng)作游戲渲染試圖的,如果你只想把游戲放到某個view上,就需要在AppDelegateBridge初始化的時候把渲染view傳過去。
- 以上完成之后,在iOS項目導(dǎo)入僑接文件正常調(diào)用就行了
- 運行的時候有些地方可能會崩潰,注意查看是不是部分游戲文件內(nèi)存釋放問題(cocos游戲默認(rèn)mrc),如果是內(nèi)存的問題,可以在該文件后邊加-fobjc-arc,比如IOSPlatform.mm文件
方案2:
- 整個配置做成pod庫,不再需要手動配置Build Settings