iOS和unity的融合方案初探

598 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第4天,点击查看活动详情

引言

项目背景:iOS app内嵌H5和 AR功能,AR使用unity2020开发。

技术点:unity导出的目标工程Unity-iPhone.xcodeproj 与原生进行融合

目前的方案:uniapp 桥接IOS, ios 桥接unity, uniapp 采用插件的形式进行iOS原生代码开发, 然后集成为ipa文件。

如果有更好的思路和相关文章,欢迎留言推荐。

I 实现思路

思路1: uniapp 桥接IOS,ios 桥接unity,然后集成为ipa文件。

Unity发布到iOS平台得到的是一个Xcode工程,uniapp 这边是个本地资源包。

思路2: 原生APP集成Unity导出的Xcode工程(需要将导出的工程封装为静态库)

思路3: Unity3D 嵌入iOS原生代码

思路4: Unity导出的web工程部署到服务器,原生APP加载对应的H5地址。(视加AR不支持导出Web)

小程序的AR是图片识别,视加AR是空间识别; 小程序是在屏幕上,app可以做到3D的跟随图片。

如果有更好的思路和相关文章,感谢留言推荐。

II 桥接

2.1 IOS中调用Unity的方法

使用unityengine.dll提供的C接口UnitySendMessage 第1个char* 表示接受该消息的GameObject的name, 第2个表示该GameObject的脚本中接受消息的函数名, 第3个表示传递的参数。

    //参数1 场景中模型的名字
    //参数2 脚本名称方法
    //参数3 想unity传递一个char类型的数据
   UnitySendMessage("iOSSendMessageToUnity", "ChangeCameraDirection", "");

结合后unity里面的你先打开后是进入这个场景(SelectScene) 物体名SceneManager 脚本名SceneSelect 函数ChangeScene(string str) 传参数ZhenWuMiaoAR就是真武庙;或者传参数modelShow就是沙盘。

2.2 uniapp 桥接iOS

除了 uni-app 框架内置的跨端 API,各端自己的特色 API 也可通过条件编译 自由使用。因此uniapp可直接使用原生API进行发布通知,实现通信。

see also

第三方框架EasyAR Sense 4.0 提供免费个人版、月付费专业版、一次性付费经典版和定制化功能企业版四种订阅模式。

uniapp 采用插件的形式进行iOS原生代码开发:nativesupport.dcloud.net.cn/NativePlugi…