iOS原生集成unity—framework形式集成(2)
次 前言:昨天整理了一下Unity以framework形式集成到Xcode中,接下来我们说一下iOS与Unity的交互,我的项目中总共有12个方法,还在Unity中加入了“退出”按钮,因为安卓开发者的集成方式不一样,直接在界面中写的退出按钮,但是我的退出按钮是写在了Unity的界面上,所以当时想要从Unity的项目返回到原生界面的时候花费了好久才想通。好的,废话不多说,我们现在开始总结。第一步:需要明确交互是是否含有参数,是否给Unity返回数据,我们的方法是有返回数据(后面会将不带返回数据的方法讲解)。
1、与Unity开发人员定义好需要的方法名,将方法名放到NativeCallProxy的m文件中,方法名要相同。
方法名定义
2、在NativeCallProxy的m文件中,要申明需要调用的方法。
外部调用方法声明
3、在调用的原生界面中导入头文件#include <UnityFramework/NativeCallProxy.h>,遵守NativeCallsProtocol协议
遵守协议
4、实现定义的方法
实现方法返回数据
完成这一步的话,这说明交互实现完成。若只是调用原生方法的话,那就不给Unity返回数据,这样更加简单,也是与Unity开发人员定义好需要的方法,如下图
定义方法,实现方法
声明方法
因为我是需要在Unity的界面中实现动画效果,所以需要自己写个界面,需要在UnityAppController中写入开启动画的方法。
实现动画效果方法
截止到目前,已完成Unity调用iOS端方法的步骤已完成,若想iOS端调用Unity的方法,请继续往下看
第二步:OC调用unity的函数
oc调用unity函数的方式就更简单了,直接用下面的函数就可以了
- (void)sendMessageToGOWithName:(const char*)goName functionName:(const char*)name message:(const char*)msg
参数一:直接问unity的同学拿就可以了
参数二:函数名
参数三:传参,只能字符串传递,多个参数的情况下,与unity的同学约定好字符串的切割格式。
事例:
[ sendMessageToGOWithName: &#34;AvatarSys&#34; functionName: &#34;ChangeModel&#34; message: &#34;hair-4&#34;];
在不懈的努力下终于将项目完成,当时花费了不少时间,脑袋疼,头发脱了好多,但是觉得没有白付出,值啦。如果大家需要帮忙的话,可以加我,咱们一起讨论,一起进步。觉得有帮助的小伙伴请帮忙点点赞,谢谢大家。 请问,oc调用unity的函数,向unity传地图场景的路径,如果unity工程对应一个地图可以加载成功,但是unity工程对应多个地图场景加载失败,报Failed to read data for the AssetBundle 错误。我用你的方式集成unity的framework到oc工程,pause,unloadApplication,quitApplication,这三个方法都无效
页:
[1]