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里面写一个传值就好


好了,跑一下手机:

收工!

你可能感兴趣的:(unity打包iOS,通过swift给unity传值)