美文网首页上海恩美路演学无止境
在iOS原有项目中导入AR场景的注意事项

在iOS原有项目中导入AR场景的注意事项

作者: 好尼桑 | 来源:发表于2017-05-08 19:28 被阅读296次

    C#教程

    就大概列下自己看过的吧,也就了解一下基础:

    1. runoob上的基础手册
    2. 极客学院上的C#教程

    先mark几个网站吧:


    关于AR

    增强现实技术(Augmented Reality,简称 AR),是一种实时地计算摄影机影像的位置及角度并加上相应图像、视频、3D模型的技术,这种技术的目标是在屏幕上把虚拟世界套在现实世界并进行互动。
    AR系统具有三个突出的特点:①真实世界和虚拟的信息集成;②具有实时交互性;③是在三维尺度空间中增添定位虚拟物体。

    放些我见过的惊世骇俗的AR效果:
    AR打斗场景.
    塔防游戏
    当然我是不会做的,我这篇文章主要记录一下对于AR这块儿的探索,以及过程中的一些坑。最下面提供一个简易Demo。

    国内的几个比较好的SDK

    EasyAR
    HiAR

    如何将Unity导出的项目植入到原有的iOS工程中

    一路走一路坑,提供参考过的一些链接,慢慢来嘛:
    Unity和iOS原生界面交互示例
    这里有个英文教程,跟上面的基本一样的:Integrating Unity3D with native iOS application for Xcode 7 & Unity 5来自这个人
    iOS - 将Unity导出的Xcode工程导入到另一个Xcode项目, 及常见报错的解决方法
    Unity Vuforia 项目与原生iOS项目融合
    Unity3D integration with UIView
    unity 整合到原生iOS项目(swift 2.3)
    unity3D与iOS原生工程项目合并以及合并过程中的问题

    这里有篇将Unity的view设置为你的vc的子view

    Unity官方的针对iOS的文档

    关于无法编译成功的问题

    1. 要保证你在真机上运行
    2. 要将EnableTestablibility 设置为NO 我这里用的HiAR,参见这里

    OC 和C#的相互调用

    目前来看,Unity如果要调用iOS项目中的方法的话,只能调用全局方法,或者C、C++的全局方法,我目前这么认为(我自己的测试结果是,如果想调用某个对象方法的话,至少需要创建一个单例对象,将我们需要调用的对象挂载上来即可实现)。

    至于如何调用可以参考这里:Unity与iOS原生代码之间的相互调用和这里:官网的文档

    如何通过OC调用Unity中的方法来切换场景

    思考

    1. 目前看来导入的的UNITY一开始就运行了,这将占用大量的资源,必须要禁止啊。(暂且调用.pasued方法,即可暂停Unity,仍会有小部分消耗)
    2. 另一个问题是如何让弹出的UNITY的Button点击做更多的事情,以及和iOS原生的方法进行交互,我要在识别到的时候拿到数据,并且点击button之后直接切换页面做其他的事情。(在Unity中可以通过对UGUI中的Button添加自定义事件,可以设置自定义方法,甚至是调用我们iOS项目中的方法哦)
    3. 摄像头翻转的问题,不明白为什么UNITY的工程导出到iOS上面摄像头就翻转了。(HiAR的兼容问题,这个demo学习的时候HiAR推荐使用5.0-5.4的unity,而我用的5.6,我的Demo里面就没再改动了,所以摄像头是反的哈)

    题外话

    Unity的跨平台能力是真的牛叉,简直逆天了。膜拜膜拜!
    Unity3D将来时:IL2CPP(上)

    这里是个简单的Demo~ AR集福
    由于两个.a文件过大,你可以在[盘链接:密码: r243] 找到

    相关文章

      网友评论

        本文标题:在iOS原有项目中导入AR场景的注意事项

        本文链接:https://www.haomeiwen.com/subject/hclwzttx.html