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


部分相關(guān)代碼
AppDelegate.h
unity工程有個unityappcontroller什么名字的類其實就是appdelegate,我把兩個類揉一起去了。



AppDelegate.mm
unity里的方法屬性全挪過來。代理方法里的方法調(diào)用別忘記。
app啟動第一次啟動unity要有一個準(zhǔn)備的方法,我是通過通知實現(xiàn)的





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

AppDelegate+ViewHandling.mm
原本是unity工程生成的unityappcontroller的category。

開始調(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)化的地方,還請點出。