获得点击/当前处于活动状态的ui元素oculus OVR unity

时间:2018-10-04 13:19:37

标签: c# user-interface unity3d raycasting oculus

我一直在尝试让UI下拉元素与oculus rift一起使用。 我已经将Canvas和Eventsystem转换为可与oculus的OVR类一起使用。目前,除DropDown元素外,所有ui元素均起作用。

经过一些研究,我发现Dropdown元素动态创建选项列表,从而导致这些元素不能与OVRRaycaster相交。因此,我尝试使用以下代码来更新元素(如果它们动态更改):

void Update () 
{
    var found = gameObject.GetComponentsInChildren<GraphicRaycaster>();
    foreach (var gr in found) {
    var ovr = gr.GetComponent<OVRRaycaster>();
        if (ovr == null) {
            gr.enabled = false;
            ovr = gr.gameObject.AddComponent<OVRRaycaster>();
            ovr.sortOrder = 20;
        }
    }
}

不幸的是,这破坏了进度中的所有ui元素(并且没有修复dropdown元素)。所以我想为什么不获取我正在悬停的当前元素并应用相同的代码。看看是否有所作为。因此,我尝试从Oculus文档中获取以下功能:

OVRRaycaster.OnPointerEnter ( PointerEventData e )

但是此行给我以下错误:

  

'PointerEventData'是一种类型,在给定的上下文[Assembly-CSharp]中无效

所以我实际上有两个问题:

  1. 如何获取当前的ui元素(悬停或单击)
  2. 如何使UI Dropdown元素与Oculus rift(OVRRayCaster)一起使用

如果有不清楚的地方,请告诉我,以便我澄清。

0 个答案:

没有答案