//======= Copyright (c) Valve Corporation, All rights reserved. ===============
|
|
//
|
|
// Purpose: Makes the hand act as an input module for Unity's event system
|
|
//
|
|
//=============================================================================
|
|
|
|
using UnityEngine;
|
|
using System.Collections;
|
|
using UnityEngine.EventSystems;
|
|
|
|
namespace Valve.VR.InteractionSystem
|
|
{
|
|
//-------------------------------------------------------------------------
|
|
public class InputModule : BaseInputModule
|
|
{
|
|
private GameObject submitObject;
|
|
|
|
//-------------------------------------------------
|
|
private static InputModule _instance;
|
|
public static InputModule instance
|
|
{
|
|
get
|
|
{
|
|
if ( _instance == null )
|
|
_instance = GameObject.FindObjectOfType<InputModule>();
|
|
|
|
return _instance;
|
|
}
|
|
}
|
|
|
|
|
|
//-------------------------------------------------
|
|
public override bool ShouldActivateModule()
|
|
{
|
|
if ( !base.ShouldActivateModule() )
|
|
return false;
|
|
|
|
return submitObject != null;
|
|
}
|
|
|
|
|
|
//-------------------------------------------------
|
|
public void HoverBegin( GameObject gameObject )
|
|
{
|
|
PointerEventData pointerEventData = new PointerEventData( eventSystem );
|
|
ExecuteEvents.Execute( gameObject, pointerEventData, ExecuteEvents.pointerEnterHandler );
|
|
}
|
|
|
|
|
|
//-------------------------------------------------
|
|
public void HoverEnd( GameObject gameObject )
|
|
{
|
|
PointerEventData pointerEventData = new PointerEventData( eventSystem );
|
|
pointerEventData.selectedObject = null;
|
|
ExecuteEvents.Execute( gameObject, pointerEventData, ExecuteEvents.pointerExitHandler );
|
|
}
|
|
|
|
|
|
//-------------------------------------------------
|
|
public void Submit( GameObject gameObject )
|
|
{
|
|
submitObject = gameObject;
|
|
}
|
|
|
|
|
|
//-------------------------------------------------
|
|
public override void Process()
|
|
{
|
|
if ( submitObject )
|
|
{
|
|
BaseEventData data = GetBaseEventData();
|
|
data.selectedObject = submitObject;
|
|
ExecuteEvents.Execute( submitObject, data, ExecuteEvents.submitHandler );
|
|
|
|
submitObject = null;
|
|
}
|
|
}
|
|
}
|
|
}
|