Unity AR如何在场景中触发按钮?

时间:2018-11-28 10:48:04

标签: unity3d button augmented-reality vuforia

我有这个用于Android的小AR-Unityapp,我尝试用按钮播放视频。但是按钮不应在屏幕上(画布),而应在场景中(可以理解吗?)。因此,我制作了一个3d平面,该平面只是通过指针向下事件来开始视频,但无法正常工作。我知道有可能做到这一点,但我不知道有什么帮助会有所帮助(xP)。

enter image description here

2 个答案:

答案 0 :(得分:3)

使用世界画布:

创建一个画布,并将其“渲染模式”设置为“世界”。 在该画布中,您可以放置​​按钮,为其提供一个3D位置,就像在飞机上一样。但是,您可以使用常规的UI功能(例如按钮),而不是自己实现点击检测。

答案 1 :(得分:2)

如果要触发Pointer Down事件,请遵循以下步骤

STEPS

  1. 将Physical Raycaster添加到您的相机,如下所示 Physics Raycaster
  2. 在场景中添加EventSystem对象
    右键单击Hirarchy窗口-> UI->事件系统
  3. 攻击事件触发组件到所需平面
    选择平面->添加组件->事件触发器->添加指针向下事件enter image description here
  4. 现在通过PointerDown事件(在我的情况下为Plane.OnSelected())调用Required方法

事件触发替代项

  1. 上述步骤1至2
  2. 按如下所示将以下脚本附加到该飞机上

    using UnityEngine;
    using UnityEngine.EventSystems;
    
    public class Plane : MonoBehaviour,IPointerDownHandler {
        public void OnPointerDown(PointerEventData eventData)
        {
            Debug.Log("CALLED");
        }
    }
    

    此方法将在所需平面上的下指针上调用。 如上述代码所示,我们正在使用IPointerDownHandler

  3. UnityEngine.EventSystems接口

我确信这可以解决您的问题。