unity打包iOS,通过swift给unity传值

最近在研究unity和swift,网上教程也有,但是大多是把unity的项目整合到swift中,但是我们这个是unity的项目,所以不能整合到swift中。后面会用swift写蓝牙和swift的一些东西,研究清楚了会写一下swift的蓝牙。

unity打包iOS,自动是OC的文件,其实传值和OC的差不多,unity给iOS传值,我前面有一篇文章,OC给unity传值用 UnitySendMessage 这个方法。在OC里面直接使用。在swift中,也一样用同一个方法。下面会说一下桥接,以及我这里出现的问题。

首先,我在unity中,用了了一个button,和text,C#不熟悉,所以每次都是这些简单的东西,哈哈。

这个主要就是点击一个按钮通知iOS中的swift中的一个方法给text传个值。

我这里的unity的版本号很重要(5.5.0f3),因为后面有个坑,我怀疑是和版本有很大关系的。

text就是下面这个透明的。

然后写一下脚本

这里新建一个C#的脚本,C#的脚本的名字要在第一次新建的时候就写好,不然里面是不是变的(这是写给我自己的,免得我忘记了)


这里这样写就可以了.然后把脚本挂在Canvas上面。


然后就打包iOS。在Xcode中,新建一个OC管理类,和一个Swift文件。这里你新建Swift的时候,会问你是否新建一个桥接的头文件,按照系统的来就可以了。

在oc中使用swift需要:


桥接文件的.h


oc 中需要的。

在swift使用OC的方法需要:

当这一切都完成了,按照常理说,就没有问题了,但是我这里出现了问题,因为我编译后,会报错:(非常奇怪的问题,我在不同的Mac上面做同样的事情,一台报错,一台没有问题,唯一的区别是一个是unity2017,一个是我现在用的5.5.0f3)报错的是5.5.0f3打包过来的文件。

这里我也找了一些资料,但是基础浅薄,看的不是很明白。

https://stackoverflow.com/questions/8815200/receiver-type-for-instance-message-is-a-forward-declaration

https://stackoverflow.com/questions/8815200/receiver-type-for-instance-message-is-a-forward-declaration

最后我解决的办法可以说是蒙的,我也不知道我为什么会这样想

好了,反正不报错了。原因嘛,有老司机看见了愿意讲解一下就谢谢了。

最后在swift里面写一个传值就好


好了,跑一下手机:

收工!
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,196评论 4 61
  • 下班高峰。 二层,地铁站台。 一层,电梯入口。 女孩站上自动扶梯。 斜向二层,匀速。如常。 一半路程,二层抬头可见...
    GoodNineNine阅读 241评论 0 2
  • 清迈移民局简直就是我在清迈的噩梦。 刚好今天是90天报道的时间,刚好准备出门一个多周没下雨的清迈又开始电闪雷鸣。等...
    Mensa阅读 169评论 0 0
  • 自从订阅了李笑来老师在《得到》上的专栏《通往财富自由之路》,很多观念被更新,好几次有焕然新生的感觉,暗自庆幸还好没...
    杰克熊阅读 318评论 0 0
  • 走吧,一步一步,一圈一圈,在这静谧的雨夜,不必思考明天,更不必管人生与未来,只和雨夜静处。 走过樱...
    小池W阅读 203评论 0 2