// use screen midpoint as locked pointer location, enabling look location to be the "mouse"
private PointerEventData GetLookPointerEventData()
{
VRCursorController cursor= VRCursorController.GetInstance();
Vector3 lookPosition = cursor.GetCursorRaycastPosition(RAYCAST_OFFSET);
RaycastHit testRayResult = new RaycastHit();
if (m_hoverData == null)
{
m_hoverData = new PointerEventData(eventSystem);
}
m_hoverData.Reset();
m_hoverData.delta = Vector2.zero;
m_hoverData.position = lookPosition;
m_hoverData.scrollDelta = Vector2.zero;
Vector3 lookDirection = cursor.GetCursorRaycastDirection();
Ray testRay = new Ray(lookPosition, lookDirection);
RaycastResult raycastResult = new RaycastResult();
raycastResult.Clear();
if (Physics.Raycast(testRay, out testRayResult, RAYCAST_OFFSET+10.0f, UI_COLLISION_LAYER_MASK))
{
raycastResult.gameObject = testRayResult.collider.gameObject;
raycastResult.depth = 0;
raycastResult.distance = testRayResult.distance;
}
m_hoverData.pointerCurrentRaycast = raycastResult;
if (m_hoverData.pointerCurrentRaycast.gameObject != null)
{
m_guiRaycastHit = true;
}
else
{
m_guiRaycastHit = false;
}
return m_hoverData;
}