问题描述
我正在Unity中使用VR,试图让我的控制器在输入菜单图像时振动。我现在有一个测试脚本,试图查看是否可以获取进入图像的指针,因为我需要知道我的raycast来自哪个控制器,以便可以振动该控制器。
当前,这是我的测试代码,并且我已经查看了“ PointerEventData”的文档,但没有找到从那里获取指针的方法。该测试脚本位于图像游戏对象上。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
public class OnPointerEnterEvent : EventTrigger
{
public override void OnPointerEnter(PointerEventData data)
{
Debug.Log("OnPointerEnter called.");
}
}
这里我有什么想念的吗?或者这只是错误的处理方式?
解决方法
使用PointerEventData.pointerEnter,您将收到接收“ OnPointerEnter”事件的对象。该游戏对象应该是场景中的控制器。
,由于VR没有屏幕表面,也没有一个指针,因此该区域可能很棘手。我建议研究一下统一的XR框架/示例,其中有一对新的悬停输入/退出回调:
XRBaseControllerInteractor.OnHoverEnter(XRBaseInteractable) XRBaseControllerInteractor.OnHoverExit(XRBaseInteractable)
(其中basecontrollerinteractor通常是XRRayInteractor)
在测试了我可以使用的几乎所有vr框架之后,我发现这是处理这些事件的最可靠方法