将“画布渲染模式”设置为“世界空间”时没有事件

HP.*_*HP. 1 c# unity-game-engine ios artoolkit

我正在构建使用ARToolkit for Unity3D的AR iOS应用。我的目标是在世界空间模式下创建一个UI,以便当我将手机摄像头指向图像时,它将以3D形式显示UI(例如,选择产品或滚动浏览信息列表等)。

我遵循的指示:

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画布(此屏幕快照之外-与此无关紧要)

在此处输入图片说明

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

在此处输入图片说明

好的,我举起了我的图像,它检测并显示了2个多维数据集和一个按钮。但是,单击或触摸按钮均无效。以前在“ UI层”和“屏幕空间覆盖”中,我可以按一下按钮,它可以正常工作(基本上在控制台中输出一些文本-没关系)。

在此处输入图片说明

无论如何,我尝试使用一个新项目进行测试,在该项目中我不使用ARToolkit,而只是一个普通的Camera。一切正常。因此,它肯定与ARToolkit中断移动触摸事件有关。

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

Pro*_*mer 6

这确实是一些统一的技巧。

您必须了解以下内容:

  • 如果将“画布”更改为“世界空间”,则画布将查找带有标签“ MainCamera”的相机,并将其用作执行光线投射的相机。

    在此处输入图片说明

  • 如果找不到带有“ MainCamera”标签的摄像机,Unity将使用在“画布”的“ 事件摄像机”插槽中设置的摄像机

    在此处输入图片说明

  • 最后,如果未找到带有“ MainCamera”标签的摄像机,并且画布”的“ 事件摄像机”插槽中未设置摄像机,则不会进行光线投射,并且您的UI也不会发送任何事件。

因此,您必须将“摄像机”的标签更改为“ MainCamera”,或者将主摄像机插入“画布”中的“ 事件摄像机”插槽,或者如果主摄像机无法与artoolkit配合使用,执行这两项操作。在您发布的屏幕快照中,未分配该插槽,因为它显示为“ None”