常见问题(FAQ)

我可以在应用商店中发布使用了EasyAR的应用吗?

可以。您可以在任意应用商店中发布使用了EasyAR的应用。并且您需要在您的应用或衍生产品中加入EasyAR包中的LICENSE。


EasyAR使用了开源软件吗?这对我的应用有什么影响?

EasyAR 内部使用了一些开源软件。这些软件是BSD/MIT/Apache/Boost 授权的。您可以在SDK包中的LICENSE文件里查看详细的信息。根据LICENSE内容,这些软件是被允许商用的。您需要在您的应用或衍生产品中加入这些LICENSE 。


EasyAR有水印吗?

没有。EasyAR不会显示水印。


我可以在哪些操作系统中发布我的应用?

EasyAR SDK 支持移动端和PC端的操作系统,包含以下这些:

Windows 7 及以上版本(7/8/8.1/10。*如果是在Unity3D中使用,支持Windows 7 及以上版本,而独立的Windows SDK需要Windows 7 SP1及以上版本

Mac OS X

Android 4.0 及以上版本

iOS 7.0 及以上版本


EasyAR 支持透明视频吗?

支持。EasyAR 1.1版本增加了完整的透明视频支持。


EasyAR 支持Unity3D吗?

支持。EasyAR 从第一个发布版本开始就支持Unity3D。


EasyAR支持什么版本的Unity3D?

EasyAR从1.1版本开始完整支持Unity4(4.6以上)和Unity5。

如果您在使用老版本的EasyAR遇到兼容性问题,请更新EasyAR至最新。


有哪些方法可以在EasyAR的基础上创建并显示3D内容?

在当前版本中您有两个选项。

a) 可以使用Unity3D创建3D内容。这是推荐使用的方式。

b) 可以使用OpenGL ES 2.0 进行简单的渲染或创建复杂的3D场景。可以选择使用3D引擎与EasyAR对接。

注意:我们正在接入内嵌的3D引擎,这将在今后的发布版本中提供给您第三种选择。


EasyAR 会支持内嵌的3D 引擎吗?

会的。我们知道轻量级的内嵌3D引擎对许多开发者和使用场景来说是非常重要的。我们会在今后的版本中加入这一功能。


为什么Unity3D 会报'DllNotFoundException: EasyARUnity'的错误?

请使用EasyAR 1.2或以上版本。


为什么屏幕什么都没显示,但是当有东西被跟踪到之后会显示3D内容,并且log显示“EasyAR is running on an unsupported graphics device...”?

请确保图形API的设置与EasyAR兼容,可兼容的配置参见平台需求


为什么我在发布到iPhone上之后显示白屏?

请使用EasyAR 1.1或以上版本,并检查设置以保证图形API这一选项是选择的OpenGL ES 2.0。


为什么我运行之后只显示灰屏或天空盒子?

请使用EasyAR 1.2或以上版本。


为什么我在发布到iPhone上之后显示黑屏?

如果你在使用其它Unity native 插件(比如Mobile Movie Texture),有可能会碰到黑屏。

这个问题很容易解决,你需要合并EasyAR和另一个插件提供的AppController。这里是一个合并后的例子(与Mobile Movie Texture合并)。

如果你在使用Mobile Movie Texture,你需要做的是

1. 删除Assets/Plugins/iOS/MMTAppController.mm

2. 使用这个文件替换同文件夹中的EasyARAppController.mm。

3. 重新编译。

如果你不在使用Mobile Movie Texture,你需要做类似的几步

1. 修改EasyARAppController.mm以合并所有的AppControllers。不同插件的函数名可能会不同,需要注意的是作为参数带入UnityRegisterRenderingPlugin的函数。

2. 从代码中删除其它AppController。

3. 使用修改过的EasyARAppController.mm替换原始文件。

4. 重新编译。


Unity导出来的XCode与原生工程结合黑屏,但是扫到东西的时候能显示3D内容?

通常这个时候能在XCode中看到如下log:EasyAR is running on an unsupported graphics device of type -4。

通常这并不是EasyAR或Unity的bug,而是XCode工程的结合方式有些问题。

为了正确显示,首先需要保证Graphics Device按照文档所述设置为GLES2。

然后需要确保 UnityRegisterRenderingPlugin(&ezarUnitySetGraphicsDevice, &ezarUnityRenderEvent); 被正常调用(只要在这段代码旁边打个log就能看出来是否被调用)。如果没被调用肯定是不正常的。如果没改文件的话这段代码在EasyARAppController.shouldAttachRenderDelegate里面。

如果没有被调用请自行查找原因,这个有多种可能性,其中最常见的一种和前述问题类似(虽然问题本身不一定一样,背后的原因是相同的),就是使用IMPL_APP_CONTROLLER_SUBCLASS多注册了,所以有些(比如EasyAR的)就不起作用。这时如果有多个IMPL_APP_CONTROLLER_SUBCLASS或类似的东西就需要合并到一起。但其他情况需要根据具体代码才能知道问题究竟出在哪里。

另外任何用到native render plugin的Unity插件都会有类似的问题,所以这应该不是什么新问题,只是会用到unity native render plugin的插件比较少,可能不常遇到。


EasyAR 1.3 Unity 屏幕闪烁(闪屏)?

已知在某些Unity版本中(5.0.0)会出现这个问题。由于Unity每个版本会有各种各样的bug,官方也在不断修正各种bug,所以这个问题很有可能是EasyAR1.3的某些优化触发了Unity的某个bug。所以建议使用其他版本的Unity,已知Unity4.6和Unity5.3都正常。

EasyAR 2.0将修复该问题。