Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.XR.MagicLeap;
- using HutongGames.PlayMaker;
- namespace XRInput
- {
- public class PMController : MonoBehaviour
- {
- public float Trigger;
- public bool BumperDown;
- [Space]
- public bool Touch1Active;
- public Vector3 Touch1PosAndForce = Vector3.zero;
- public bool Touch2Active;
- public Vector3 Touch2PosAndForce = Vector3.zero;
- [Space]
- public string TouchpadGestureType;
- public MLInputControllerTouchpadGesture TouchpadGesture;
- public MLInputControllerTouchpadGestureState TouchpadGestureState;
- private ControllerConnectionHandler _controllerConnectionHandler = null;
- private bool _eventsSet = false;
- [Header("Event settings")]
- public float TriggerThreshold = 0.1f;
- void Start()
- {
- _controllerConnectionHandler = GetComponent<ControllerConnectionHandler>();
- }
- void Update()
- {
- if (!_controllerConnectionHandler.IsControllerValid())
- return;
- MLInputController controller = _controllerConnectionHandler.ConnectedController;
- if (!_eventsSet)
- {
- controller.OnConnect += OnConnect;
- controller.OnDisconnect += OnDisconnect;
- controller.OnTouchpadGestureContinue += OnTouchpadGestureContinue;
- controller.OnTouchpadGestureEnd += OnTouchpadGestureEnd;
- controller.OnTouchpadGestureStart += OnTouchpadGestureStart;
- controller.OnButtonUp += OnButtonUp;
- controller.OnButtonDown += OnButtonDown;
- _eventsSet = true;
- }
- // PadTouch Down\Up
- if (Touch1Active == false && controller.Touch1Active)
- PlayMakerFSM.BroadcastEvent("PadTouchDown");
- if (Touch1Active == true && controller.Touch1Active == false)
- PlayMakerFSM.BroadcastEvent("PadTouchUp");
- // Bumper Down\Up
- if (BumperDown == false && controller.IsBumperDown)
- PlayMakerFSM.BroadcastEvent("BumperDown");
- if (BumperDown == true && controller.IsBumperDown == false)
- PlayMakerFSM.BroadcastEvent("BumperUp");
- // Trigger Down\Up
- if (Trigger < TriggerThreshold && controller.TriggerValue > TriggerThreshold)
- PlayMakerFSM.BroadcastEvent("TriggerDown");
- if (Trigger > TriggerThreshold && controller.TriggerValue < TriggerThreshold)
- PlayMakerFSM.BroadcastEvent("TriggerUp");
- Trigger = controller.TriggerValue;
- BumperDown = controller.IsBumperDown;
- Touch1Active = controller.Touch1Active;
- Touch2Active = controller.Touch2Active;
- Touch1PosAndForce = controller.Touch1PosAndForce;
- Touch2PosAndForce = controller.Touch2PosAndForce;
- TouchpadGesture = controller.TouchpadGesture;
- TouchpadGestureType = TouchpadGesture.Type.ToString();
- TouchpadGestureState = controller.TouchpadGestureState;
- }
- void OnConnect(byte controllerId)
- {
- PlayMakerFSM.BroadcastEvent("OnConnect");
- }
- void OnDisconnect(byte controllerId)
- {
- PlayMakerFSM.BroadcastEvent("OnDisconnect");
- }
- void OnTouchpadGestureContinue(byte controllerId, MLInputControllerTouchpadGesture touchpadGesture)
- {
- PlayMakerFSM.BroadcastEvent("OnTouchpadGestureContinue");
- }
- void OnTouchpadGestureEnd(byte controllerId, MLInputControllerTouchpadGesture touchpadGesture)
- {
- PlayMakerFSM.BroadcastEvent("OnTouchpadGestureEnd");
- }
- void OnTouchpadGestureStart(byte controllerId, MLInputControllerTouchpadGesture touchpadGesture)
- {
- PlayMakerFSM.BroadcastEvent("OnTouchpadGestureStart");
- }
- void OnButtonUp(byte controllerId, MLInputControllerButton button)
- {
- PlayMakerFSM.BroadcastEvent("OnButtonUp");
- }
- void OnButtonDown(byte controllerId, MLInputControllerButton button)
- {
- PlayMakerFSM.BroadcastEvent("OnButtonDown");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement