最近在研究unity和swift停蕉,網(wǎng)上教程也有愕鼓,但是大多是把unity的項(xiàng)目整合到swift中钙态,但是我們這個(gè)是unity的項(xiàng)目,所以不能整合到swift中菇晃。后面會(huì)用swift寫藍(lán)牙和swift的一些東西册倒,研究清楚了會(huì)寫一下swift的藍(lán)牙。
unity打包iOS磺送,自動(dòng)是OC的文件驻子,其實(shí)傳值和OC的差不多,unity給iOS傳值估灿,我前面有一篇文章崇呵,OC給unity傳值用 UnitySendMessage 這個(gè)方法。在OC里面直接使用馅袁。在swift中域慷,也一樣用同一個(gè)方法。下面會(huì)說一下橋接汗销,以及我這里出現(xiàn)的問題犹褒。
首先,我在unity中弛针,用了了一個(gè)button叠骑,和text,C#不熟悉削茁,所以每次都是這些簡(jiǎn)單的東西宙枷,哈哈。
這個(gè)主要就是點(diǎn)擊一個(gè)按鈕通知iOS中的swift中的一個(gè)方法給text傳個(gè)值茧跋。
我這里的unity的版本號(hào)很重要(5.5.0f3)朦拖,因?yàn)楹竺嬗袀€(gè)坑,我懷疑是和版本有很大關(guān)系的厌衔。
然后寫一下腳本
然后就打包iOS。在Xcode中苏潜,新建一個(gè)OC管理類银萍,和一個(gè)Swift文件。這里你新建Swift的時(shí)候恤左,會(huì)問你是否新建一個(gè)橋接的頭文件贴唇,按照系統(tǒng)的來就可以了。
在oc中使用swift需要:
在swift使用OC的方法需要:
當(dāng)這一切都完成了戳气,按照常理說,就沒有問題了巧鸭,但是我這里出現(xiàn)了問題瓶您,因?yàn)槲揖幾g后,會(huì)報(bào)錯(cuò):(非常奇怪的問題纲仍,我在不同的Mac上面做同樣的事情呀袱,一臺(tái)報(bào)錯(cuò),一臺(tái)沒有問題郑叠,唯一的區(qū)別是一個(gè)是unity2017夜赵,一個(gè)是我現(xiàn)在用的5.5.0f3)報(bào)錯(cuò)的是5.5.0f3打包過來的文件。
這里我也找了一些資料乡革,但是基礎(chǔ)淺薄寇僧,看的不是很明白。
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
最后我解決的辦法可以說是蒙的署拟,我也不知道我為什么會(huì)這樣想
最后在swift里面寫一個(gè)傳值就好
好了,跑一下手機(jī):