Vuforia + Unity:按下UI按钮时,在AR中实例化模型

时间:2018-10-08 15:32:28

标签: c# user-interface unity3d augmented-reality vuforia

我知道这是一个非常简单的问题,但我不知道如何将其归档:

我的场景中有一个UI按钮,我希望Vuforia仅在按下按钮时实例化一个AR模型。

在网上学习完本教程之后,我能够在触摸屏时在屏幕上实例化一个模型,但是我需要知道如何设置Vuforia,以便仅在按下按钮时才能存档相同的结果。

我必须禁用“锚输入侦听器行为”吗? 接着?

我想调用PositionContentAtPlaneAnchor,但是我不知道如何在按钮的OnClick字段中以正确的方式调用它。我需要为此创建自定义脚本吗?

感谢您的回答。

1 个答案:

答案 0 :(得分:1)

好,抱歉耽搁了。

我推断您正在使用地平面,如果您在场景中有Ground Plane StagePlane Finder并可以正常工作,那么我们处于最佳状态。

现在,您只需要在场景中添加一个按钮,并在脚本中添加如下所示的内容即可:

public PlaneFinderBehaviour plane;

void Start()
{
    ...
    buttonOnTheScene.onClick.AddListener(TaskOnClick);
    ...
}

void TaskOnClick()
{
    Vector2 aPosition = new Vector2(0,0);
    ...
    plane.PerformHitTest(aPosition);
}

这是什么意思?

首先,您必须将Plane Finder从“层次结构”移动到脚本变量,因此我们在脚本中具有对该平面的引用。

然后,当您单击(或点击)按钮时,就会使用PerformHitTest模拟显示屏上的点击(或点击)。

如果您想知道为什么我在评论中提出问题,那是因为Plane Finder Behaviour Script具有两种模式类型:交互和自动。交互式程序在显示屏上拦截水龙头,并在水龙头的确切位置显示对象(在地平面上),自动在水平面中心显示对象。

因此,如果您希望对象处于正确的位置,则可以在PerformHitTest中传递一个Vector2位置;如果您要以编程方式显示一个对象,或者想要在对象显示时执行某些操作,则可以调用自定义方法{ {1}}。

仅此而已。