Object-C工程集成unity

集成的問題都好搞,最主要的是怎么打開unity頁面,因為unity有自己的根視圖控制器以及要區(qū)分第一次和非第一次打開。主要思路是切換APP本身的window和unity的window。由于項目時間太久遠了,下面只貼圖。

基礎(chǔ)配置


shell腳本


plist文件,我也不知道為什么這么配置了(???♀?)

部分相關(guān)代碼

AppDelegate.h

unity工程有個unityappcontroller什么名字的類其實就是appdelegate,我把兩個類揉一起去了。

UnityWindow是繼承UIWindow的單例


unity工程的部分屬性和方法和OC的AppDelegate柔和一起了


AppDelegate.mm

unity里的方法屬性全挪過來。代理方法里的方法調(diào)用別忘記。

app啟動第一次啟動unity要有一個準(zhǔn)備的方法,我是通過通知實現(xiàn)的


prepare,preStartUnity不用你實現(xiàn)


createUI


unity第一次啟動方法,UnitySendMessage是unity自定義接口


非第一次啟動


部分缺省接口和新增接口,缺省的一定要寫。不寫編譯會報錯

其他方法直接復(fù)制出來就可以。

main.mm


AppControllerClassName一定不能錯

AppDelegate+ViewHandling.mm

原本是unity工程生成的unityappcontroller的category。

showGameUI,我把這個類里的window全部替換成unitywindow這個單例了。

開始調(diào)用了

首先在調(diào)用的類里初始化AppDelegate:(我有不知道當(dāng)時為什么這么寫???♀?)

self.UnityAC= [[AppDelegate alloc] init];?

然后在喚起unity的方法里:

unityWindow = [UnityWindow sharedInstance];

unityWindow.frame = [UIScreen mainScreen].bounds;

[unityWindow makeKeyAndVisible];? ??

unityWindow.hidden = NO;

BOOL isUnityFirst = [[NSUserDefaults standardUserDefaults] boolForKey:@"UNITYFIRST"]; ? ?

if (isUnityFirst) { ?? ? ? ? ? ? ? ?

[[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"UNITYFIRST"]; ? ? ? ? [[NSUserDefaults standardUserDefaults] synchronize]; ?? ? ? ? ? ? ? ? [[NSNotificationCenter defaultCenter] postNotificationName:@"UNITYPREPARE" object:nil];? ? ? ? //通知unity準(zhǔn)備啟動

//第一次啟動

[self.UnityAC startUnity:[UIApplication sharedApplication] withPrizeInfo:param]; ? ?

} ? ? else { ?? ? ? ? ? ? ? ?

//非第一次啟動

[self.UnityAC secondUnityWithPrizeInfo:param]; ?

? }

結(jié)束

主要代碼差不多就這么多了(可能有些小地方忘記貼了???♀?),主要思路就是給unity單獨創(chuàng)建一個window,通過切換window實現(xiàn)APP和unity的切換。我也不知道在APP里結(jié)束unity的方法,望知道的大神還請指點一二。由于距離接觸這個東西的時間比較久了而且只接觸過這一次,相關(guān)資料又不多。所以用的很多方法都是笨方法。有什么問題或者可以優(yōu)化的地方,還請點出。

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

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

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