iOS与unity3D交互整合的那些事

一.小记

最近公司有个需求,需要用unity3D建立3D模型,并且实现切换功能,由于做开发时间不算长,又没有接触过unity3D, 所以只能一头雾水去网上查找资料,也看了雨松MOMO的文章,不过都是几年前的了,有些东西已经不适用了,只能边看边研究,今天终于有点眉目了,可以在unity3D导出的iOS工程文件的基础上,对3D建模的页面进行修改,并能够执行一些操作了。

二.实现细节

unity3D 版本: 5.3.4

Xcode    版本: 7.3.1

首先就是需要做unity3D的人员将相应的模型上绑定好脚本,并告知你模型或者说要操作的对象的名称和要调用的方法名称,这里由于我要实现的是切换摄像机的角度,所以名称为mycamera(我希望是驼峰命名myCamera,可惜unity3D那边不是我写的,就不要在意这些细节了,自己注意就好),导出的时候在playerSetting中做好各种设置,选择使用模拟器调试、SDK版本什么的,这里就不赘述了。

导出的包如果是压缩后传过来的,那么解压后需要稍等一会才能看见文件夹中的xcodeproj文件,不知道什么原因可能是文件太大了吧......

打开xcodeproj文件,首先编译一下试试,很大可能报一个错误

编译报错

意思是说MapFileParser.sh文件没有权限执行,这样我们进入中端,给予这个文件权限

给MapFileParser.sh权限

这样,报错就能够成功解决了,再次运行就会出现没有加工处理过的原生的unity3D的内容了

比如像这个杯子的3D模型

文件能正常编译运行,我们就可以进行下一步了。

我们在导出的工程中自己添加文件MyViewInit

添加自己的文件

在文件中写入自己想要实现的代码

MyViewInit.h


MyViewInit.m
MyViewInit.m

当一个简单的界面搭建好之后,我们就要先测试一下是否能够添加到U3D模型界面,在工程文件夹中找到Classes文件夹,点击展开,找到UnityAppController.mm文件,该文件是U3D工程的启动文件

找到UnityAppController.mm文件

在文件的最上部分,导入自己写的文件的头文件

#import "MyViewInit.h"

找到方法

didFinishLaunching

在方法最底部添加布置UI的代码

布置UI

其中UnityGetGLViewController() 是U3D模型视图中的根视图控制器

(如果在老版本的unity3D中可能需要对此进行更改)

然后就可以点击运行进行测试了,不出什么意外的话,就可以显示在模型视图上了

添加UI控件后的视图

怎么样,效果立竿见影吧!

下面进行最重要的一步,向U3D模型发送消息,回到MyViewInit.m文件,为两个button添加的点击事件完成实现,别忘了在.h文件声明

实现button点击事件

为了防止发生小意外找不到错误,可以先在这里打印,看看按钮是否响应点击事件,如果能成功打印,那就万事大吉了。


这里要着重说一点,雨松MOMO在他的一篇文章中讲述了这方面的内容,他使用的是继承自UIViewController的文件,并使用对象方法来写UI和点击事件,不知道为什么,添加的UI空间可以显示,但是button不响应点击事件,我还暂时没有深究原因,待后续更新。


在点击事件中,使用U3D已经写好的方法

UnitySendMessage("mycamera", "changeModel", "");

第一个参数 填写接受方法的物品或者模型名称。

第二个参数 填写方法名字。

第三个参数 填写要穿的参数,没有要传的参数直接写"",这里不能写nil,会crash。

这样再次运行,就可以啦,我这里实现的是点击按钮切换模型

切换模型

后续还会将此工程嵌入到已完成的iOS项目中进行整合,我还会继续更新!


----------------------------------------------------------------------------------------------------

2017年03月10日09:49:20  更新

----------------------------------------------------------------------------------------------------

有很多朋友会问,自己添加的点击事件不响应,实例方法不响应,但是类方法却响应。这里其实是在程序运行的时候,你所添加button的视图控制器被U3D的系统方法替换掉了,导致按钮被释放,所以肯定也不会有事件响应了,下图注释的部分就是U3D系统替换你的ViewController的方法。


U3D系统方法会换掉你的控制器


所以想要保证视图控制器不被释放,在创建的时候要加一个static即可解决。




欢迎支持

我的新浪微博:任性的驴

欢迎关注!!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容