Files

472 lines
22 KiB
C#

using UnityEngine;
using UnityEngine.Events;
namespace HurricaneVR.Framework.ControllerInput
{
public class HVRControllerEvents : MonoBehaviour
{
public static HVRControllerEvents Instance { get; private set; }
public UnityEvent LeftGripActivated = new UnityEvent();
public UnityEvent LeftGripDeactivated = new UnityEvent();
public UnityEvent RightGripActivated = new UnityEvent();
public UnityEvent RightGripDeactivated = new UnityEvent();
public UnityEvent LeftTriggerActivated = new UnityEvent();
public UnityEvent LeftTriggerDeactivated = new UnityEvent();
public UnityEvent RightTriggerActivated = new UnityEvent();
public UnityEvent RightTriggerDeactivated = new UnityEvent();
public UnityEvent LeftPrimaryActivated = new UnityEvent();
public UnityEvent LeftPrimaryDeactivated = new UnityEvent();
public UnityEvent RightPrimaryActivated = new UnityEvent();
public UnityEvent RightPrimaryDeactivated = new UnityEvent();
public UnityEvent LeftSecondaryActivated = new UnityEvent();
public UnityEvent LeftSecondaryDeactivated = new UnityEvent();
public UnityEvent RightSecondaryActivated = new UnityEvent();
public UnityEvent RightSecondaryDeactivated = new UnityEvent();
public UnityEvent LeftMenuActivated = new UnityEvent();
public UnityEvent LeftMenuDeactivated = new UnityEvent();
public UnityEvent RightMenuActivated = new UnityEvent();
public UnityEvent RightMenuDeactivated = new UnityEvent();
public UnityEvent LeftPrimaryTouchActivated = new UnityEvent();
public UnityEvent LeftPrimaryTouchDeactivated = new UnityEvent();
public UnityEvent RightPrimaryTouchActivated = new UnityEvent();
public UnityEvent RightPrimaryTouchDeactivated = new UnityEvent();
public UnityEvent LeftSecondaryTouchActivated = new UnityEvent();
public UnityEvent LeftSecondaryTouchDeactivated = new UnityEvent();
public UnityEvent RightSecondaryTouchActivated = new UnityEvent();
public UnityEvent RightSecondaryTouchDeactivated = new UnityEvent();
public UnityEvent LeftJoystickActivated = new UnityEvent();
public UnityEvent LeftJoystickDeactivated = new UnityEvent();
public UnityEvent RightJoystickActivated = new UnityEvent();
public UnityEvent RightJoystickDeactivated = new UnityEvent();
public UnityEvent LeftTrackpadActivated = new UnityEvent();
public UnityEvent LeftTrackpadDeactivated = new UnityEvent();
public UnityEvent RightTrackpadActivated = new UnityEvent();
public UnityEvent RightTrackpadDeactivated = new UnityEvent();
public UnityEvent LeftJoystickTouchActivated = new UnityEvent();
public UnityEvent LeftJoystickTouchDeactivated = new UnityEvent();
public UnityEvent RightJoystickTouchActivated = new UnityEvent();
public UnityEvent RightJoystickTouchDeactivated = new UnityEvent();
public UnityEvent LeftTrackPadTouchActivated = new UnityEvent();
public UnityEvent LeftTrackPadTouchDeactivated = new UnityEvent();
public UnityEvent RightTrackPadTouchActivated = new UnityEvent();
public UnityEvent RightTrackPadTouchDeactivated = new UnityEvent();
public UnityEvent LeftTriggerTouchActivated = new UnityEvent();
public UnityEvent LeftTriggerTouchDeactivated = new UnityEvent();
public UnityEvent RightTriggerTouchActivated = new UnityEvent();
public UnityEvent RightTriggerTouchDeactivated = new UnityEvent();
public UnityEvent LeftThumbTouchActivated = new UnityEvent();
public UnityEvent LeftThumbTouchDeactivated = new UnityEvent();
public UnityEvent RightThumbTouchActivated = new UnityEvent();
public UnityEvent RightThumbTouchDeactivated = new UnityEvent();
public UnityEvent LeftTrackPadUpActivated = new UnityEvent();
public UnityEvent LeftTrackPadUpDeactivated = new UnityEvent();
public UnityEvent RightTrackPadUpActivated = new UnityEvent();
public UnityEvent RightTrackPadUpDeactivated = new UnityEvent();
public UnityEvent LeftTrackPadLeftActivated = new UnityEvent();
public UnityEvent LeftTrackPadLeftDeactivated = new UnityEvent();
public UnityEvent RightTrackPadLeftActivated = new UnityEvent();
public UnityEvent RightTrackPadLeftDeactivated = new UnityEvent();
public UnityEvent LeftTrackPadRightActivated = new UnityEvent();
public UnityEvent LeftTrackPadRightDeactivated = new UnityEvent();
public UnityEvent RightTrackPadRightActivated = new UnityEvent();
public UnityEvent RightTrackPadRightDeactivated = new UnityEvent();
public UnityEvent LeftTrackPadDownActivated = new UnityEvent();
public UnityEvent LeftTrackPadDownDeactivated = new UnityEvent();
public UnityEvent RightTrackPadDownActivated = new UnityEvent();
public UnityEvent RightTrackPadDownDeactivated = new UnityEvent();
private HVRGlobalInputs _globalInputs;
private bool _hasInputs;
private void Awake()
{
if (!Instance)
{
Instance = this;
DontDestroyOnLoad(this.gameObject);
}
else
{
Destroy(this);
return;
}
//testing...
//LeftGripActivated.AddListener(() => { Debug.Log("LeftGripActivated"); });
//LeftGripDeactivated.AddListener(() => { Debug.Log("LeftGripDeactivated"); });
//RightGripActivated.AddListener(() => { Debug.Log("RightGripActivated"); });
//RightGripDeactivated.AddListener(() => { Debug.Log("RightGripDeactivated"); });
//LeftTriggerActivated.AddListener(() => { Debug.Log("LeftTriggerActivated"); });
//LeftTriggerDeactivated.AddListener(() => { Debug.Log("LeftTriggerDeactivated"); });
//RightTriggerActivated.AddListener(() => { Debug.Log("RightTriggerActivated"); });
//RightTriggerDeactivated.AddListener(() => { Debug.Log("RightTriggerDeactivated"); });
//LeftPrimaryActivated.AddListener(() => { Debug.Log("LeftPrimaryActivated"); });
//LeftPrimaryDeactivated.AddListener(() => { Debug.Log("LeftPrimaryDeactivated"); });
//RightPrimaryActivated.AddListener(() => { Debug.Log("RightPrimaryActivated"); });
//RightPrimaryDeactivated.AddListener(() => { Debug.Log("RightPrimaryDeactivated"); });
//LeftSecondaryActivated.AddListener(() => { Debug.Log("LeftSecondaryActivated"); });
//LeftSecondaryDeactivated.AddListener(() => { Debug.Log("LeftSecondaryDeactivated"); });
//RightSecondaryActivated.AddListener(() => { Debug.Log("RightSecondaryActivated"); });
//RightSecondaryDeactivated.AddListener(() => { Debug.Log("RightSecondaryDeactivated"); });
//LeftMenuActivated.AddListener(() => { Debug.Log("LeftMenuActivated"); });
//LeftMenuDeactivated.AddListener(() => { Debug.Log("LeftMenuDeactivated"); });
//RightMenuActivated.AddListener(() => { Debug.Log("RightMenuActivated"); });
//RightMenuDeactivated.AddListener(() => { Debug.Log("RightMenuDeactivated"); });
//LeftPrimaryTouchActivated.AddListener(() => { Debug.Log("LeftPrimaryTouchActivated"); });
//LeftPrimaryTouchDeactivated.AddListener(() => { Debug.Log("LeftPrimaryTouchDeactivated"); });
//RightPrimaryTouchActivated.AddListener(() => { Debug.Log("RightPrimaryTouchActivated"); });
//RightPrimaryTouchDeactivated.AddListener(() => { Debug.Log("RightPrimaryTouchDeactivated"); });
//LeftSecondaryTouchActivated.AddListener(() => { Debug.Log("LeftSecondaryTouchActivated"); });
//LeftSecondaryTouchDeactivated.AddListener(() => { Debug.Log("LeftSecondaryTouchDeactivated"); });
//RightSecondaryTouchActivated.AddListener(() => { Debug.Log("RightSecondaryTouchActivated"); });
//RightSecondaryTouchDeactivated.AddListener(() => { Debug.Log("RightSecondaryTouchDeactivated"); });
//LeftJoystickActivated.AddListener(() => { Debug.Log("LeftJoystickActivated"); });
//LeftJoystickDeactivated.AddListener(() => { Debug.Log("LeftJoystickDeactivated"); });
//RightJoystickActivated.AddListener(() => { Debug.Log("RightJoystickActivated"); });
//RightJoystickDeactivated.AddListener(() => { Debug.Log("RightJoystickDeactivated"); });
//LeftTrackpadActivated.AddListener(() => { Debug.Log("LeftTrackpadActivated"); });
//LeftTrackpadDeactivated.AddListener(() => { Debug.Log("LeftTrackpadDeactivated"); });
//RightTrackpadActivated.AddListener(() => { Debug.Log("RightTrackpadActivated"); });
//RightTrackpadDeactivated.AddListener(() => { Debug.Log("RightTrackpadDeactivated"); });
//LeftJoystickTouchActivated.AddListener(() => { Debug.Log("LeftJoystickTouchActivated"); });
//LeftJoystickTouchDeactivated.AddListener(() => { Debug.Log("LeftJoystickTouchDeactivated"); });
//RightJoystickTouchActivated.AddListener(() => { Debug.Log("RightJoystickTouchActivated"); });
//RightJoystickTouchDeactivated.AddListener(() => { Debug.Log("RightJoystickTouchDeactivated"); });
//LeftTrackPadTouchActivated.AddListener(() => { Debug.Log("LeftTrackPadTouchActivated"); });
//LeftTrackPadTouchDeactivated.AddListener(() => { Debug.Log("LeftTrackPadTouchDeactivated"); });
//RightTrackPadTouchActivated.AddListener(() => { Debug.Log("RightTrackPadTouchActivated"); });
//RightTrackPadTouchDeactivated.AddListener(() => { Debug.Log("RightTrackPadTouchDeactivated"); });
//LeftTriggerTouchActivated.AddListener(() => { Debug.Log("LeftTriggerTouchActivated"); });
//LeftTriggerTouchDeactivated.AddListener(() => { Debug.Log("LeftTriggerTouchDeactivated"); });
//RightTriggerTouchActivated.AddListener(() => { Debug.Log("RightTriggerTouchActivated"); });
//RightTriggerTouchDeactivated.AddListener(() => { Debug.Log("RightTriggerTouchDeactivated"); });
//LeftThumbTouchActivated.AddListener(() => { Debug.Log("LeftThumbTouchActivated"); });
//LeftThumbTouchDeactivated.AddListener(() => { Debug.Log("LeftThumbTouchDeactivated"); });
//RightThumbTouchActivated.AddListener(() => { Debug.Log("RightThumbTouchActivated"); });
//RightThumbTouchDeactivated.AddListener(() => { Debug.Log("RightThumbTouchDeactivated"); });
//LeftTrackPadUpActivated.AddListener(() => { Debug.Log("LeftTrackPadUpActivated"); });
//LeftTrackPadUpDeactivated.AddListener(() => { Debug.Log("LeftTrackPadUpDeactivated"); });
//RightTrackPadUpActivated.AddListener(() => { Debug.Log("RightTrackPadUpActivated"); });
//RightTrackPadUpDeactivated.AddListener(() => { Debug.Log("RightTrackPadUpDeactivated"); });
//LeftTrackPadLeftActivated.AddListener(() => { Debug.Log("LeftTrackPadLeftActivated"); });
//LeftTrackPadLeftDeactivated.AddListener(() => { Debug.Log("LeftTrackPadLeftDeactivated"); });
//RightTrackPadLeftActivated.AddListener(() => { Debug.Log("RightTrackPadLeftActivated"); });
//RightTrackPadLeftDeactivated.AddListener(() => { Debug.Log("RightTrackPadLeftDeactivated"); });
//LeftTrackPadRightActivated.AddListener(() => { Debug.Log("LeftTrackPadRightActivated"); });
//LeftTrackPadRightDeactivated.AddListener(() => { Debug.Log("LeftTrackPadRightDeactivated"); });
//RightTrackPadRightActivated.AddListener(() => { Debug.Log("RightTrackPadRightActivated"); });
//RightTrackPadRightDeactivated.AddListener(() => { Debug.Log("RightTrackPadRightDeactivated"); });
//LeftTrackPadDownActivated.AddListener(() => { Debug.Log("LeftTrackPadDownActivated"); });
//LeftTrackPadDownDeactivated.AddListener(() => { Debug.Log("LeftTrackPadDownDeactivated"); });
//RightTrackPadDownActivated.AddListener(() => { Debug.Log("RightTrackPadDownActivated"); });
//RightTrackPadDownDeactivated.AddListener(() => { Debug.Log("RightTrackPadDownDeactivated"); });
}
private void Start()
{
_globalInputs = HVRGlobalInputs.Instance;
_hasInputs = _globalInputs;
}
private void Update()
{
if (!_hasInputs)
return;
if (_globalInputs.LeftGripButtonState.JustActivated)
{
LeftGripActivated.Invoke();
}
else if (_globalInputs.LeftGripButtonState.JustDeactivated)
{
LeftGripDeactivated.Invoke();
}
if (_globalInputs.RightGripButtonState.JustActivated)
{
RightGripActivated.Invoke();
}
else if (_globalInputs.RightGripButtonState.JustDeactivated)
{
RightGripDeactivated.Invoke();
}
if (_globalInputs.LeftTriggerButtonState.JustActivated)
{
LeftTriggerActivated.Invoke();
}
else if (_globalInputs.LeftTriggerButtonState.JustDeactivated)
{
LeftTriggerDeactivated.Invoke();
}
if (_globalInputs.RightTriggerButtonState.JustActivated)
{
RightTriggerActivated.Invoke();
}
else if (_globalInputs.RightTriggerButtonState.JustDeactivated)
{
RightTriggerDeactivated.Invoke();
}
if (_globalInputs.LeftPrimaryButtonState.JustActivated)
{
LeftPrimaryActivated.Invoke();
}
else if (_globalInputs.LeftPrimaryButtonState.JustDeactivated)
{
LeftPrimaryDeactivated.Invoke();
}
if (_globalInputs.RightPrimaryButtonState.JustActivated)
{
RightPrimaryActivated.Invoke();
}
else if (_globalInputs.RightPrimaryButtonState.JustDeactivated)
{
RightPrimaryDeactivated.Invoke();
}
if (_globalInputs.LeftSecondaryButtonState.JustActivated)
{
LeftSecondaryActivated.Invoke();
}
else if (_globalInputs.LeftSecondaryButtonState.JustDeactivated)
{
LeftSecondaryDeactivated.Invoke();
}
if (_globalInputs.RightSecondaryButtonState.JustActivated)
{
RightSecondaryActivated.Invoke();
}
else if (_globalInputs.RightSecondaryButtonState.JustDeactivated)
{
RightSecondaryDeactivated.Invoke();
}
if (_globalInputs.LeftMenuButtonState.JustActivated)
{
LeftMenuActivated.Invoke();
}
else if (_globalInputs.LeftMenuButtonState.JustDeactivated)
{
LeftMenuDeactivated.Invoke();
}
if (_globalInputs.RightMenuButtonState.JustActivated)
{
RightMenuActivated.Invoke();
}
else if (_globalInputs.RightMenuButtonState.JustDeactivated)
{
RightMenuDeactivated.Invoke();
}
if (_globalInputs.LeftPrimaryTouchButtonState.JustActivated)
{
LeftPrimaryTouchActivated.Invoke();
}
else if (_globalInputs.LeftPrimaryTouchButtonState.JustDeactivated)
{
LeftPrimaryTouchDeactivated.Invoke();
}
if (_globalInputs.RightPrimaryTouchButtonState.JustActivated)
{
RightPrimaryTouchActivated.Invoke();
}
else if (_globalInputs.RightPrimaryTouchButtonState.JustDeactivated)
{
RightPrimaryTouchDeactivated.Invoke();
}
if (_globalInputs.LeftSecondaryTouchButtonState.JustActivated)
{
LeftSecondaryTouchActivated.Invoke();
}
else if (_globalInputs.LeftSecondaryTouchButtonState.JustDeactivated)
{
LeftSecondaryTouchDeactivated.Invoke();
}
if (_globalInputs.RightSecondaryTouchButtonState.JustActivated)
{
RightSecondaryTouchActivated.Invoke();
}
else if (_globalInputs.RightSecondaryTouchButtonState.JustDeactivated)
{
RightSecondaryTouchDeactivated.Invoke();
}
if (_globalInputs.LeftJoystickButtonState.JustActivated)
{
LeftJoystickActivated.Invoke();
}
else if (_globalInputs.LeftJoystickButtonState.JustDeactivated)
{
LeftJoystickDeactivated.Invoke();
}
if (_globalInputs.RightJoystickButtonState.JustActivated)
{
RightJoystickActivated.Invoke();
}
else if (_globalInputs.RightJoystickButtonState.JustDeactivated)
{
RightJoystickDeactivated.Invoke();
}
if (_globalInputs.LeftTrackpadButtonState.JustActivated)
{
LeftTrackpadActivated.Invoke();
}
else if (_globalInputs.LeftTrackpadButtonState.JustDeactivated)
{
LeftTrackpadDeactivated.Invoke();
}
if (_globalInputs.RightTrackpadButtonState.JustActivated)
{
RightTrackpadActivated.Invoke();
}
else if (_globalInputs.RightTrackpadButtonState.JustDeactivated)
{
RightTrackpadDeactivated.Invoke();
}
if (_globalInputs.LeftJoystickTouchState.JustActivated)
{
LeftJoystickTouchActivated.Invoke();
}
else if (_globalInputs.LeftJoystickTouchState.JustDeactivated)
{
LeftJoystickTouchDeactivated.Invoke();
}
if (_globalInputs.RightJoystickTouchState.JustActivated)
{
RightJoystickTouchActivated.Invoke();
}
else if (_globalInputs.RightJoystickTouchState.JustDeactivated)
{
RightJoystickTouchDeactivated.Invoke();
}
if (_globalInputs.LeftTrackPadTouchState.JustActivated)
{
LeftTrackPadTouchActivated.Invoke();
}
else if (_globalInputs.LeftTrackPadTouchState.JustDeactivated)
{
LeftTrackPadTouchDeactivated.Invoke();
}
if (_globalInputs.RightTrackPadTouchState.JustActivated)
{
RightTrackPadTouchActivated.Invoke();
}
else if (_globalInputs.RightTrackPadTouchState.JustDeactivated)
{
RightTrackPadTouchDeactivated.Invoke();
}
if (_globalInputs.LeftTriggerTouchState.JustActivated)
{
LeftTriggerTouchActivated.Invoke();
}
else if (_globalInputs.LeftTriggerTouchState.JustDeactivated)
{
LeftTriggerTouchDeactivated.Invoke();
}
if (_globalInputs.RightTriggerTouchState.JustActivated)
{
RightTriggerTouchActivated.Invoke();
}
else if (_globalInputs.RightTriggerTouchState.JustDeactivated)
{
RightTriggerTouchDeactivated.Invoke();
}
if (_globalInputs.LeftThumbTouchState.JustActivated)
{
LeftThumbTouchActivated.Invoke();
}
else if (_globalInputs.LeftThumbTouchState.JustDeactivated)
{
LeftThumbTouchDeactivated.Invoke();
}
if (_globalInputs.RightThumbTouchState.JustActivated)
{
RightThumbTouchActivated.Invoke();
}
else if (_globalInputs.RightThumbTouchState.JustDeactivated)
{
RightThumbTouchDeactivated.Invoke();
}
if (_globalInputs.LeftTrackPadUp.JustActivated)
{
LeftTrackPadUpActivated.Invoke();
}
else if (_globalInputs.LeftTrackPadUp.JustDeactivated)
{
LeftTrackPadUpDeactivated.Invoke();
}
if (_globalInputs.RightTrackPadUp.JustActivated)
{
RightTrackPadUpActivated.Invoke();
}
else if (_globalInputs.RightTrackPadUp.JustDeactivated)
{
RightTrackPadUpDeactivated.Invoke();
}
if (_globalInputs.LeftTrackPadLeft.JustActivated)
{
LeftTrackPadLeftActivated.Invoke();
}
else if (_globalInputs.LeftTrackPadLeft.JustDeactivated)
{
LeftTrackPadLeftDeactivated.Invoke();
}
if (_globalInputs.RightTrackPadLeft.JustActivated)
{
RightTrackPadLeftActivated.Invoke();
}
else if (_globalInputs.RightTrackPadLeft.JustDeactivated)
{
RightTrackPadLeftDeactivated.Invoke();
}
if (_globalInputs.LeftTrackPadRight.JustActivated)
{
LeftTrackPadRightActivated.Invoke();
}
else if (_globalInputs.LeftTrackPadRight.JustDeactivated)
{
LeftTrackPadRightDeactivated.Invoke();
}
if (_globalInputs.RightTrackPadRight.JustActivated)
{
RightTrackPadRightActivated.Invoke();
}
else if (_globalInputs.RightTrackPadRight.JustDeactivated)
{
RightTrackPadRightDeactivated.Invoke();
}
if (_globalInputs.LeftTrackPadDown.JustActivated)
{
LeftTrackPadDownActivated.Invoke();
}
else if (_globalInputs.LeftTrackPadDown.JustDeactivated)
{
LeftTrackPadDownDeactivated.Invoke();
}
if (_globalInputs.RightTrackPadDown.JustActivated)
{
RightTrackPadDownActivated.Invoke();
}
else if (_globalInputs.RightTrackPadDown.JustDeactivated)
{
RightTrackPadDownDeactivated.Invoke();
}
}
}
}