原生IOS應用(Swift)反覆打開關閉Unity View

項目的要求如下:在APP中點擊3D場景的列表,打開並進入Unity的3D場景頁面,然後在Unity中可以點擊返回按鈕退出Unity頁面再次返回到IOS原生應用,前提是在同一個APP中進行 
實現概要如下: 
1.從Unity導出IOS工程,在導出IOS工程中繼續編寫Native APP所需要的代碼 
2.在工程AppDelegate文件中(Unity5.0工程導出的爲UnityAPPController)修改原先的啓動方式爲先啓動我們編寫的Native APP(下面會詳細說) 
3.在Unity View啓動後,使用IOS代碼爲Unity View添加一個關閉按鈕 
4.在IOS中增加退出(其實是掛起)Unity的function 
5.在IOS中增加啓動(包含重新啓動)Unity的function 
6.解決雙向傳遞數據問題 
詳細步驟: 
1.導出工程 


2.打開導出的IOS工程如下: 

3.修改工程啓動方式,由先啓動unity視圖,修改爲先啓動我們的ViewController 
這裏加入了一個homePageEnable變量,表示我們的Homepage是否被啓動過,如果啓動做,就不再重複執行 



4.startHomePage方法如下: 

這樣,我們就可以實現工程直接先啓動我們的視圖,其實總結一下很簡單,把APP的rootViewController修改成我們的,並且停用原有Unity的相同功能代碼。 
啓動後如何關閉呢???關閉又重新打開Unity視圖是否會出現問題呢??不要急,跟着我一步一步來搞定!:) 
如上文所說,Unity一旦被我們打開後,我們是不需要徹底關閉的,我們需要返回到IOS Native View的時候,直接將Unity View Pause到後臺,並且把window的rootViewController再次設置成我們的homepage即可。 
5.在IOS native app代碼中打開unity 

第一次打開Unity,直接調用UnityAppController中的startUnity函數即可,我這裏寫了這麼多代碼,是因爲我時swift代碼的調用,這裏我將UnityAppController作爲一個對象放在如圖所示的全局變量rootController(它就是一個普通的UIViewController)的屬性UVC中 
第二次打開的Unity的代碼,是我自己寫的,如下: 

啓動,和反覆啓動Unity頁面搞定了,可是如何關閉呢??一起來看看吧! 
5.Unity View啓動時在頁面中初始化一個我們實現寫好的關閉按鈕的UIView 

6.按鈕就是一個放在一個普通的UIView,該按鈕的動作是去調用一個退出Unity視圖程序,退出的方法依然寫在UnityAppController中,如下圖: 

7.IOS打開Unity並傳值的這個我就不寫了,網上可以搜到一堆。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章