原生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并传值的这个我就不写了,网上可以搜到一堆。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章