首页 > 解决方案 > 我可以在空中放置一个物体吗 - 360 度角(随机位置)而不点击而不是在统一 Vuforia 半空中找到平面

问题描述

我正在尝试在半空中展示我的 3D 对象。目前我的对象显示在点击事件上,但我不想要点击事件。我只希望对象显示在半空中的随机位置。

标签: unity3daugmented-realityvuforia

解决方案


如果我把你的问题分成两部分,那么,

  1. Vuforia 使用“Anchor input Listener Behavior”来接收空中锚点的输入。我不确定它是否会在没有点击事件的情况下工作。

在此处输入图像描述 您必须单击以锁定空中目标,您可以通过显示弹出“单击开始”来将其游戏化。然而,总有一条出路。如果你通过PlaneManager.cs类然后你找到一个方法“PlaceObjectInMidAir”,你可以仔细构建逻辑并在Update方法中调用以下几行但一次。

if (TrackingStatusIsTrackedAndNormal)
{
    this.contentPositioningBehaviour.AnchorStage = this.midAirAnchor;
    this.contentPositioningBehaviour.PositionContentAtMidAirAnchor(midAirTransform);
    UtilityHelper.EnableRendererColliderCanvas(this.midAirAugmentation, true);

    this.midAirAugmentation.transform.localPosition = Vector3.zero;
    UtilityHelper.RotateTowardCamera(this.midAirAugmentation);
}
  1. 要以 360 度随机生成游戏对象,您可以使用“Random.insideUnitSphere”在随机位置使用实例化方法 [参见链接] https://docs.unity3d.com/ScriptReference/Random-insideUnitSphere.html 然后将该对象设为子对象半空中的 Achor “Anchor_MidAir”。

希望我的回答能给你一个开始的推动力。祝你好运!


推荐阅读