public override void Process()
{
// Save the previous Game Object
GameObject gazeObjectPrevious = GetCurrentGameObject();
CastRayFromGaze();
UpdateCurrentObject();
UpdateReticle(gazeObjectPrevious);
// Handle input
if (!Input.GetMouseButtonDown(0) && Input.GetMouseButton(0)) {
HandleDrag();
} else if (Time.unscaledTime - pointerData.clickTime < clickTime) {
// Delay new events until clickTime has passed.
} else if (!pointerData.eligibleForClick &&
(GvrViewer.Instance.Triggered || Input.GetMouseButtonDown(0) ||
GvrController.ClickButtonDown)) {
// New trigger action.
HandleTrigger();
} else if (!GvrViewer.Instance.Triggered && !Input.GetMouseButton(0) &&
!GvrController.ClickButton) {
// Check if there is a pending click to handle.
HandlePendingClick();
}
}