我一直在尝试让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]中无效
所以我实际上有两个问题:
如果有不清楚的地方,请告诉我,以便我澄清。