2017-07-31 84 views
1

我正在构建一个使用ARToolkit for Unity3D的AR iOS应用程序。我的目标是在世界空间模式下创建一个用户界面,以便当我将手机相机指向图像时,它将以3D形式显示用户界面(例如选择产品或滚动信息列表等)。当画布渲染模式设置为世界空间时没有事件

我说明如下:

https://github.com/artoolkit/ar6unity-wiki/wiki/Setting-Up-Your-First-ARToolKit-for-Unity-Scene

https://github.com/artoolkit/ar6unity-wiki/wiki/ARToolKit-for-Unity-on-iOS

我没有问题,使得UI渲染模式=屏幕空间叠加。这意味着无论摄像机移动如何,UI画布都会“固定”在屏幕上。但是,当我使用World Space时,UI触摸输入事件不会触发。这里是我的项目的设置:

标记2是图像检测发生的地方。然后,它应该显示2个立方体,并用按钮1个UI帆布和滚动视图(这个截图之外 - 对此并不重要)

enter image description here

这是我的画布属性。请注意,我把它放在默认层,因此UI将显示和渲染模式=世界空间:

enter image description here

OK,我举起我的形象,它检测并显示2个立方体和按钮。但是任何点击或按钮都不起作用。以前在UI层和屏幕空间覆盖,我可以击中按钮,它工作正常(基本上输出一些文本在控制台 - 无所谓)。

enter image description here

反正我试图用一个新的项目,我不使用的ARToolKit,但只是一个普通的摄像头进行测试。一切正常。所以它肯定与ARToolkit中断移动触摸事件有关。

请帮助并指出我为什么使用UI World Space在ARToolkit中无法使用移动触摸输入的原因。

回答

1

这实际上是一些统一的诡计。

你必须了解以下信息:

  • 如果你改变了画布世界空间,帆布将寻找一个 相机与标签“MainCamera”并把它作为相机 执行光线投射。

    enter image description here

  • 如果没有找到与“MainCamera”标签相机,统一将 使用,在画布事件相机插槽设置摄像头。

    enter image description here

  • 最后,如果与“MainCamera”标签相机没有找到, 没有在画布事件相机插槽没有摄像头设置,有 就没有光线投射和你的用户界面不会发送任何事件。

所以,你要么必须相机的标签更改为“MainCamera”或主摄像头插在画布上事件相机槽或执行这两个操作,如果他不与工作artoolkit。从您发布的屏幕截图看,该插槽未分配,因为它显示“无”

+0

这是一个重要的细节,没有提到任何地方。谢谢。我所要做的就是将MainCamera标签放入ARToolkit静态相机对象中。咄! –

+0

不客气!有时候Unity没有提到DOC中的东西,你必须通过犯错来解决这些问题。 – Programmer