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

Unity AR How can i trigger a button in the scene?

我有这个用于 Android 的小 AR-Unity 应用程序,我尝试使用按钮播放视频。但是按钮不应该在屏幕上( canvas )它应该在场景中(可以理解吗?)。所以我制作了一个 3d 平面,它只是用指针向下事件启动视频,但它不会工作。我知道可以做到这一点,但我不知道一些帮助会有多大帮助 (xP)。

使用一个世界canvas:

创建一个 canvas 并将其 "render mode" 设置为 "world"。 在那个 canvas 你可以放置你的按钮,像你的飞机一样给它一个 3D 位置,但是你可以使用正常的 UI 功能,比如按钮,而不是自己实现点击检测。

如果您想触发指针按下事件,只需按照以下步骤操作即可

步骤

  1. 将 Physics Raycaster 添加到您的相机,如下所示
  2. 在场景中添加 EventSystem 对象
    在层次结构中右键单击 Window -> UI -> 事件系统
  3. 将事件触发器组件攻击到所需的平面
    Select平面->添加组件->事件触发器->添加指针向下事件
  4. 现在通过 PointerDown 事件调用所需的方法(在我的例子中 Plane.OnSelected())

事件触发器的替代方法

  1. 步骤 1 到 2 同上
  2. 将以下脚本附加到该平面,如下所示

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

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

  3. IPointerDownHandler 接口

我相信这会解决您的问题。