“画布渲染模式”设置为“世界空间”时无任何事件

时间:2017-07-31 06:45:27

标签: c# ios unity3d artoolkit

我正在构建一个使用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触摸输入事件不会触发。这是我项目的设置:

Marker2是图像检测发生的地方。然后它应该显示2个立方体和1个UI画布,带有按钮和滚动视图(在此屏幕截图之外 - 对此没有关系)

enter image description here

这是我的画布属性。请注意,我将其放在默认图层中,以便UI显示,渲染模式=世界空间:

enter image description here

好的,我举起了我的图像,它检测并显示了2个立方体和按钮。但任何单击或触摸按钮都没有效果。以前在UI图层和屏幕空间叠加中,我可以点击按钮,它工作正常(基本上在控制台中输出一些文字 - 并不重要)。

enter image description here

无论如何,我试图用一个新项目进行测试,我不会使用ARToolkit而只是常规相机。一切正常。所以它肯定与ARToolkit中断移动触摸事件有关。

请帮助并指出一些方向,说明移动触摸输入在ARToolkit中使用UI World Space的原因。

1 个答案:

答案 0 :(得分:5)

这实际上是团结中的一些技巧。

您必须了解以下内容:

  • 如果您将Canvas更改为World Space,Canvas将会查找 带有" MainCamera" 标签的相机,并将其用作相机 执行光线投射。

    enter image description here

  • 如果找不到带有" MainCamera" 标签的相机,Unity将会 使用画布中设置的相机' 活动相机广告位。

    enter image description here

  • 最后,如果找不到带有" MainCamera" 标签的相机, Canvas'中没有相机设置。那里有事件相机插槽 将不会进行光线投射,您的用户界面也不会发送任何事件。

因此,您必须将相机的标签更改为" MainCamera" 或将主相机插入事件相机插槽如果他没有使用 artoolkit ,则可以使用Canvas或执行这两个操作。从您发布的屏幕截图中,未分配该广告位,因为它显示"无"