Unity3D与iOS交互2(Unity里调用iOS原生)
2017-04-21 本文已影响324人
Sam_xing
在上一章节Unity3D与iOS交互1中,我们简单介绍了Unity里调用iOS原生 ~~简单的传值。
此章节,我们来讲一下Unity调用iOS原生控件。我们以提示框(Alert)为例子;
我们在Unity3D中代码的书写是一样的,如果不是特别的需求,或者功能优化,基本上都可以用同一的模式。
那么我们来说说怎么在Xcode中撸代码呢?其实很简单,iOS怎么编程的就怎么写。
iOS中控件的显示,都是基于View层之上,都继承于UIView,虽然UnityToIOSAlert是继承于UIVIewControlle,但是我们在程序中运行的时候,都是以Unity为基础的。所以,我们要通过UnityGetGLViewController();这一方法获取UIViewController,并且把原生控件显示的view添加上去。
上一章节说道,iOS中的接口都是用C语言函数编写的。所以在函数方法里面,我们没有办法用self. 语法获取当前UIViewController的所有属性。即使能够书写控件,也没有办法添加到view层上。所以在这里。我们在写一个接口到正常iOS方法里面。
PS:这里我们需要注意的几个问题:
1.要引入头文件<QuartzCore/CACisplayLin>,因为UnitySendMessage()方法定义在这里面(我的程序并没有导入这个头文件,依然可以调用UnitySendMessage(),原因不明 - -!)
2.在C函数中的接口方法会爆一个红,原因是没有上下文链接,只要把- (void)showAlert;在 .h 函数中写一遍就可以了。(同一天生成2个文件,一个需要写,一个不需要 - -!)