iOS与Unity交互
来源:互联网 发布:java dao设计模式 编辑:程序博客网 时间:2024/06/06 02:20
软件版本:Unity5.3.4/Xcode8.1
1、Unity导出的iOS工程文件目录如下:
作为一名开发者,我们拿到这个工程的第一件事,就是找到整个程序的入口,在我们所认知的大多数语言的入口都是Main()函数,OC也不例外,在
Classes文件夹下:
它在Main()函数里面,调用的文件是:
UnityAppController
2、找到这个文件,通过研究发现,UnityAppController和AppDelegate是一样的,而在正常开发中,AppDelegate是对Application的整个生命周期进行管理的,下图为一个UIApplication的生命周期,我们可以看到系统事件存在着非常有用的监听,在UnityAppController.mm里面我们也可以看到对应的函数,这意味着在Unity中一样可以收到这些事件,以后我们将继承UnityAppController,并重写这些监听。也可以看一下这篇文章:http://www.jianshu.com/p/1f2792bc11c4
3、找到UntiyAppController找到StartUnity()这个方法,程序在启动之后会调用这个方法,
到这里,其实基本就已经实现切换到我们自己的界面了,但是可能会有疑问。
疑问一:怎么回到Unity的界面,这里切换了控制器那么Unity的控制器是不是已经拿不到了,或者已经释放了?
答:Unity里面有两个方法拿到RootViewController, GetAppController().window.rootViewController和GetAppController().rootViewController,他们两个内存地址是一样的,我替换的是Window的rootViewController,那么Unity本身的控制器是还是没有释放的,我们可以通过GetAppController().rootViewController去拿到,然后我们就可以用原生方法,pushviewcontroller或者modal去跳转进入。
疑问二:进入Unity如何返回iOS原生界面?
答:这里需要Unity在他们的界面添加一个的外部方法(或者说我们提供一个外部方法给Unity调用),然后我们去根据进入Unity界面的时候是用push或者modal去进行退出操作,例如当前是Modal进入的:
以上其实就是与Unity界面切换的方法,其实不止一种,网上还有很多类似的方法,在这里也分享一下:
http://blog.csdn.net/foreverhyh58/article/details/50353158 这个是当初学习的连接
http://www.cnblogs.com/shawn-zp/p/3225477.html 虽然比较老了,但还是有很多学习的地方
http://www.ceeger.com/forum/read.php?tid=20533 这个也比较详细。
4、真正的交互现在才开始:
Unity本身给我们提供了很多方法,比如下面这些
可以发送消息,发送点击、移动和通知等事件。
举个简单的例子:
这三个参数需要和Unity开发人员进行协商,可以复杂也可以简单,比如复杂到一个json字符串的传递。
到这里,本次分享基本算是讲完,内容可能讲的有点粗糙,但是主要用意是分析一种学习思想,想清楚为什么要这样去做,以及如何去利用已知的知识去学习新的知识等等。
- unity与ios交互
- iOS与Unity交互
- Unity与ios交互
- Unity与iOS交互
- Unity 与IOS基本交互
- unity反馈消息到ios Unity与ios交互
- Unity-Unity3D与IOS交互开发
- unity与ios交互那点事儿
- unity与iOS之间的简单交互
- Unity与iOS相互调起、交互
- iOS与unity交互、opencv 草稿
- Unity与IOS交互,调用IOS系统相机和相册
- unity与ios交互出现 not found -liPhone-lib
- unity与iOS原生交互的代码(三)
- Unity 项目与iOS项目 合并 嵌入 交互 传值
- unity与android交互
- Unity与Android交互
- Unity与Android交互
- 配置合适的Vi配置文件
- Python详解re模块
- 十个主题,最全的优秀 TensorFlow 相关资源列表
- 学习shell脚本之前的基础知识
- Java DES 加密和解密源码
- iOS与Unity交互
- Matlab的特殊符号——legend()方法和text()方法的插入及特殊字符
- 加解密之Base64实现
- style中position div定位和嵌套问题
- excel导出,导入
- c语言中关于声明和左值右值问题
- Android组件化和插件化开发
- java并发编程——Condition
- android配置时间服务器+亚洲主要的授时服务器