上海恩美路演学无止境

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

2017-05-08  本文已影响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] 找到

上一篇下一篇

猜你喜欢

热点阅读