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 功能,比如按钮,而不是自己实现点击检测。
如果您想触发指针按下事件,只需按照以下步骤操作即可
步骤
- 将 Physics Raycaster 添加到您的相机,如下所示
- 在场景中添加 EventSystem 对象
在层次结构中右键单击 Window -> UI -> 事件系统
- 将事件触发器组件攻击到所需的平面
Select平面->添加组件->事件触发器->添加指针向下事件
- 现在通过 PointerDown 事件调用所需的方法(在我的例子中 Plane.OnSelected())
事件触发器的替代方法
- 步骤 1 到 2 同上
将以下脚本附加到该平面,如下所示
using UnityEngine;
using UnityEngine.EventSystems;
public class Plane : MonoBehaviour,IPointerDownHandler {
public void OnPointerDown(PointerEventData eventData)
{
Debug.Log("CALLED");
}
}
此方法将在所需平面上的指针向下调用。
如上面的代码所示,我们正在使用 UnityEngine.EventSystems
的 IPointerDownHandler
接口
我相信这会解决您的问题。
我有这个用于 Android 的小 AR-Unity 应用程序,我尝试使用按钮播放视频。但是按钮不应该在屏幕上( canvas )它应该在场景中(可以理解吗?)。所以我制作了一个 3d 平面,它只是用指针向下事件启动视频,但它不会工作。我知道可以做到这一点,但我不知道一些帮助会有多大帮助 (xP)。
使用一个世界canvas:
创建一个 canvas 并将其 "render mode" 设置为 "world"。 在那个 canvas 你可以放置你的按钮,像你的飞机一样给它一个 3D 位置,但是你可以使用正常的 UI 功能,比如按钮,而不是自己实现点击检测。
如果您想触发指针按下事件,只需按照以下步骤操作即可
步骤
- 将 Physics Raycaster 添加到您的相机,如下所示
- 在场景中添加 EventSystem 对象
在层次结构中右键单击 Window -> UI -> 事件系统 - 将事件触发器组件攻击到所需的平面
Select平面->添加组件->事件触发器->添加指针向下事件 - 现在通过 PointerDown 事件调用所需的方法(在我的例子中 Plane.OnSelected())
事件触发器的替代方法
- 步骤 1 到 2 同上
将以下脚本附加到该平面,如下所示
using UnityEngine; using UnityEngine.EventSystems; public class Plane : MonoBehaviour,IPointerDownHandler { public void OnPointerDown(PointerEventData eventData) { Debug.Log("CALLED"); } }
此方法将在所需平面上的指针向下调用。 如上面的代码所示,我们正在使用
UnityEngine.EventSystems
的
IPointerDownHandler
接口
我相信这会解决您的问题。