使用Vuforia和Unity仅使用地平面检测创建一次对象

问题描述 投票:4回答:5

我正在尝试使用Unity和Vuforia创建一个AR应用程序。我有一个3D模型,需要在检测到地平面时产生。但这只需要发生一次。 Vuforia工作的方式是,当检测到新的飞机时,它会继续产生物体。所以我需要做的是只检测一次平面或只生成一次对象。由于我是Unity新手,我需要帮助这样做。很棒,如果有人可以告诉我我需要做什么来实现这一目标。

c# unity3d vuforia
5个回答
3
投票

在你的应用程序中,你应该有一个Plane Finder对象,默认情况下设置以下属性 enter image description here

Plane Finder对象附加了一个Behavior组件,如果找到了一个平面,则调用Position Content方法。该方法属于Content Positioning Behaviour,它生成你的Ground Plane Stage的实例(克隆)。为了避免多个实例,你应该导入位于这里的vuforia Deploy Stage Once脚本:https://library.vuforia.com/articles/Solution/ground-plane-guide.html你应该更改Plane Finder Behaviour如下:enter image description here


6
投票

Vuforia已更新。现在没有DeploymentStageOnce脚本。为了在我们触摸时停止复制,我们必须在内容定位行为(脚本)中关闭重复阶段当我们单击平面查找器时检查检查器。 enter image description here


1
投票

对于更新版本:

enter image description here

转到“高级”设置和“在交互式命中测试”脚本 - >为脚本选择“关闭”选项。


1
投票

我挣扎了很久,总之我们必须在击中后禁用AnchorInputListenerBehaviour。

  1. 我在PlaneFinder上添加了一个新脚本,代码如下: <!-- language-all: c# --> public void OnInteractiveHitTest(HitTestResult result) { var listenerBehaviour = GetComponent<AnchorInputListenerBehaviour>(); if (listenerBehaviour != null) { listenerBehaviour.enabled = false; } }
  2. 我在平面查找器行为上添加了事件

enter image description here

这就是全部,我希望它会有用。


0
投票

请尝试vuforia网站来解决这个问题

Introduction to Ground Plane in Unity