123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340 |
- using SC.XR.Unity.Module_InputSystem;
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.InputSystem;
- using UnityEngine.XR;
- using UnityEngine.XR.Interaction.Toolkit;
- using UnityEngine.XR.OpenXR.Input;
- public class XRInputManager : MonoBehaviour
- {
- public Transform left = null;
- public Transform right = null;
- public InputActionProperty inputEvent;
- public List<InputActionReference> listinput;
- int xy = 8;
- // Start is called before the first frame update
- void Start()
- {
-
- Invoke("startXR", 1f);
- // return;
- for (int i = 0; i < 15; i++)
- {
- listinput[i].action.Enable();
- listinput[i].action.performed += OnEventL;
- listinput[i].action.canceled += OnCanceledEventL;
- }
- for (int i = 15; i < listinput.Count; i++)
- {
- listinput[i].action.Enable();
- listinput[i].action.performed += OnEventR;
- listinput[i].action.canceled += OnCanceledEventR;
- }
- // InputDevices.deviceConnected += onDeviceConnected;
- // InputDevices.deviceDisconnected += onDeviceDisConnected;
- // Invoke("startXR", 1f);
- }
- private void downTP()
- {
- }
- List<Vector3> leftInfo = new List<Vector3>();
- List<Vector3> rightInfo = new List<Vector3>();
- void startXR()
- {
- // Module_InputSystem.instance.SetActiveInputDevice(InputDeviceType.KS, true);
- // Module_InputSystem.instance.SetActiveInputDevice(InputDeviceType.Head, false);
- #if UNITY_EDITOR
- Module_InputSystem.instance.SetActiveInputDevice(InputDeviceType.KS, false);
- Module_InputSystem.instance.SetActiveInputDevice(InputDeviceType.Head, true);
- #else
- Module_InputSystem.instance.SetActiveInputDevice(InputDeviceType.KS, false);
- Module_InputSystem.instance.SetActiveInputDevice(InputDeviceType.Head,true );
- #endif
- /*
- left.gameObject.SetActive(false);
- right.gameObject.SetActive(false);
- List<UnityEngine.XR.InputDevice> inputDevices = new List<UnityEngine.XR.InputDevice>();
- InputDevices.GetDevices(inputDevices);
- for (int i = 0; i < inputDevices.Count; i++)
- {
- onDeviceConnected(inputDevices[i]);
- }*/
- }
- private void Update()
- {
- }
- private void onDeviceDisConnected(UnityEngine.XR.InputDevice obj)
- {
- if (obj.characteristics.ToString().Contains(InputDeviceCharacteristics.Left.ToString()))
- {
- Debug.Log("Left===>" + obj.isValid);
- left.gameObject.SetActive(obj.isValid);
- }
- if (obj.characteristics.ToString().Contains(InputDeviceCharacteristics.Right.ToString()))
- {
- Debug.Log("Right===>" + obj.isValid);
- right.gameObject.SetActive(obj.isValid);
- }
- }
- private void OnApplicationPause(bool pause)
- {
- if (!pause)
- {
- List<UnityEngine.XR.InputDevice> inputDevices = new List<UnityEngine.XR.InputDevice>();
- InputDevices.GetDevices(inputDevices);
- for (int i = 0; i < inputDevices.Count; i++)
- {
- onDeviceConnected(inputDevices[i]);
- }
- }
- }
- private void onDeviceConnected(UnityEngine.XR.InputDevice obj)
- {
- if (obj.characteristics.ToString().Contains(InputDeviceCharacteristics.Left.ToString()))
- {
- Debug.Log("Left===>" + obj.isValid);
- left.gameObject.SetActive(obj.isValid);
- }
- if (obj.characteristics.ToString().Contains(InputDeviceCharacteristics.Right.ToString()))
- {
- Debug.Log("Right===>" + obj.isValid);
- right.gameObject.SetActive(obj.isValid);
- }
- }
- private void OnCanceledEventL(InputAction.CallbackContext context)
- {
- Debug.Log("OnCanceledEventL" + context.control.name);
- switch (context.control.name)
- {
- case "secondarytouched":
- break;
- case "secondarybutton":
- API_GSXR_Module_InputSystem_KS.GSXR_KSLeft.inputDataKS.inputKeys.InputDataAddKey(InputKeyCode.Y, InputKeyState.UP);
- break;
- case "primarytouched":
- break;
- case "touchpadtouched":
- Debug.Log("InputKeyCode.A===¡·UP");
- // API_GSXR_Module_InputSystem_KS.GSXR_KSLeft.inputDataKS.inputKeys.InputDataAddKey(InputKeyCode.X, InputKeyState.UP);
- // API_GSXR_Module_InputSystem_KS.GSXR_KSLeft.inputDataKS.inputKeys.InputDataAddKey(InputKeyCode.Enter, InputKeyState.UP);
- API_GSXR_Module_InputSystem_Head.GSXR_HeadAddKey(InputKeyCode.Enter, InputKeyState.UP);
- break;
- case "touchpadtouched1":
- break;
- case "thumbstickclicked":
- break;
- case "thumbstick":
- API_GSXR_Module_InputSystem_KS.GSXR_KSLeft.inputDataKS.JoystickX = xy + (int)(context.ReadValue<Vector2>().x * 10);
- API_GSXR_Module_InputSystem_KS.GSXR_KSLeft.inputDataKS.JoystickY = xy + (int)(context.ReadValue<Vector2>().y * 10);
- break;
- case "grip":
- API_GSXR_Module_InputSystem_KS.GSXR_KSLeft.inputDataKS.HallInside = 10 - (int)((context.ReadValue<float>()) * 10f);
- break;
- case "grippressed":
- API_GSXR_Module_InputSystem_KS.GSXR_KSLeft.inputDataKS.inputKeys.InputDataAddKey(InputKeyCode.LHallInside, InputKeyState.UP);
- break;
- case "trigger":
- API_GSXR_Module_InputSystem_KS.GSXR_KSLeft.inputDataKS.HallFoward = 10 - (int)((context.ReadValue<float>()) * 10f);
- break;
- case "menu":
- if(!isHand)
- {
- Module_InputSystem.instance.SetActiveInputDevice(InputDeviceType.KS, true);
- Module_InputSystem.instance.SetActiveInputDevice(InputDeviceType.Head, false);
- }
- else
- {
- Module_InputSystem.instance.SetActiveInputDevice(InputDeviceType.KS, false);
- Module_InputSystem.instance.SetActiveInputDevice(InputDeviceType.Head, true);
- }
- isHand = !isHand;
- // API_GSXR_Module_InputSystem_Head.GSXR_HeadAddKey(InputKeyCode.Enter, InputKeyState.UP);
- // Module_InputSystem.instance.SetActiveInputDevice(InputDeviceType.KS, true);
- // Module_InputSystem.instance.SetActiveInputDevice(InputDeviceType.Head, false);
- // API_GSXR_Module_InputSystem_KS.GSXR_KSLeft.inputDataKS.inputKeys.InputDataAddKey(InputKeyCode.LFunction, InputKeyState.UP);
- break;
- }
- }
- bool isHand = false;
- void OnEventL(InputAction.CallbackContext context)
- {
- Debug.Log("OnEventL" + context.control.name);
- switch (context.control.name)
- {
- case "secondarytouched":
- break;
- case "secondarybutton":
- API_GSXR_Module_InputSystem_KS.GSXR_KSLeft.inputDataKS.inputKeys.InputDataAddKey(InputKeyCode.Y, InputKeyState.DOWN);
- break;
- case "primarytouched":
- break;
- case "touchpadtouched":
- Debug.Log("InputKeyCode.A===¡·DOWN");
- // API_GSXR_Module_InputSystem_KS.GSXR_KSLeft.inputDataKS.inputKeys.InputDataAddKey(InputKeyCode.X, InputKeyState.DOWN);
- API_GSXR_Module_InputSystem_Head.GSXR_HeadAddKey(InputKeyCode.Enter, InputKeyState.DOWN);
- // API_GSXR_Module_InputSystem_KS.GSXR_KSLeft.inputDataKS.inputKeys.InputDataAddKey(InputKeyCode.Enter, InputKeyState.DOWN);
- break;
- case "touchpadtouched1":
- break;
- case "thumbstickclicked":
- break;
- case "thumbstick":
- API_GSXR_Module_InputSystem_KS.GSXR_KSLeft.inputDataKS.JoystickX = xy + (int)(context.ReadValue<Vector2>().x * 10);
- API_GSXR_Module_InputSystem_KS.GSXR_KSLeft.inputDataKS.JoystickY = xy + (int)(context.ReadValue<Vector2>().y * 10);
- break;
- case "grip":
- API_GSXR_Module_InputSystem_KS.GSXR_KSLeft.inputDataKS.HallInside = 10 - (int)((context.ReadValue<float>()) * 10f);
- break;
- case "grippressed":
- API_GSXR_Module_InputSystem_KS.GSXR_KSLeft.inputDataKS.inputKeys.InputDataAddKey(InputKeyCode.LHallInside, InputKeyState.DOWN);
- break;
- case "trigger":
- API_GSXR_Module_InputSystem_KS.GSXR_KSLeft.inputDataKS.HallFoward = 10 - (int)((context.ReadValue<float>()) * 10f);
- break;
- case "menu":
- API_GSXR_Module_InputSystem_KS.GSXR_KSLeft.inputDataKS.inputKeys.InputDataAddKey(InputKeyCode.LFunction, InputKeyState.DOWN);
- API_GSXR_Module_InputSystem_Head.GSXR_HeadAddKey(InputKeyCode.Enter, InputKeyState.DOWN);
- break;
- }
- }
- private void OnCanceledEventR(InputAction.CallbackContext context)
- {
- Debug.Log("OnCanceledEventR" + context.control.name);
- switch (context.control.name)
- {
- case "secondarytouched":
- break;
- case "secondarybutton":
- API_GSXR_Module_InputSystem_KS.GSXR_KSRight.inputDataKS.inputKeys.InputDataAddKey(InputKeyCode.B, InputKeyState.UP);
- break;
- case "primarytouched":
- break;
- case "touchpadtouched":
- // API_GSXR_Module_InputSystem_KS.GSXR_KSRight.inputDataKS.inputKeys.InputDataAddKey(InputKeyCode.A, InputKeyState.UP);
- API_GSXR_Module_InputSystem_KS.GSXR_KSRight.inputDataKS.inputKeys.InputDataAddKey(InputKeyCode.Enter, InputKeyState.UP);
- break;
- case "touchpadtouched1":
- break;
- case "thumbstickclicked":
- break;
- case "thumbstick":
- API_GSXR_Module_InputSystem_KS.GSXR_KSRight.inputDataKS.JoystickX = xy + (int)(context.ReadValue<Vector2>().x * 10);
- API_GSXR_Module_InputSystem_KS.GSXR_KSRight.inputDataKS.JoystickY = xy + (int)(context.ReadValue<Vector2>().y * 10);
- break;
- case "grip":
- API_GSXR_Module_InputSystem_KS.GSXR_KSRight.inputDataKS.HallInside = 10 - (int)((context.ReadValue<float>()) * 10f);
- break;
- case "grippressed":
- API_GSXR_Module_InputSystem_KS.GSXR_KSRight.inputDataKS.inputKeys.InputDataAddKey(InputKeyCode.RHallInside, InputKeyState.UP);
- break;
- case "trigger":
- API_GSXR_Module_InputSystem_KS.GSXR_KSRight.inputDataKS.HallFoward = 10 - (int)((context.ReadValue<float>()) * 10f);
- break;
- case "menu":
- // API_GSXR_Module_InputSystem_KS.GSXR_KSRight.inputDataKS.inputKeys.InputDataAddKey(InputKeyCode.RFunction, InputKeyState.UP);
- API_GSXR_Module_InputSystem_Head.GSXR_HeadAddKey(InputKeyCode.Enter, InputKeyState.UP);
- break;
- }
- }
- void OnEventR(InputAction.CallbackContext context)
- {
- Debug.Log("OnEventR" + context.control.name);
- switch (context.control.name)
- {
- case "secondarytouched":
- break;
- case "secondarybutton":
- API_GSXR_Module_InputSystem_KS.GSXR_KSRight.inputDataKS.inputKeys.InputDataAddKey(InputKeyCode.B, InputKeyState.DOWN);
- break;
- case "primarytouched":
- break;
- case "touchpadtouched":
- // API_GSXR_Module_InputSystem_KS.GSXR_KSRight.inputDataKS.inputKeys.InputDataAddKey(InputKeyCode.A, InputKeyState.DOWN);
- // API_GSXR_Module_InputSystem_KS.GSXR_KSRight.inputDataKS.inputKeys.InputDataAddKey(InputKeyCode.Enter, InputKeyState.DOWN);
- API_GSXR_Module_InputSystem_Head.GSXR_HeadAddKey(InputKeyCode.Enter, InputKeyState.DOWN);
- break;
- case "touchpadtouched1":
- break;
- case "thumbstickclicked":
- break;
- case "thumbstick":
- API_GSXR_Module_InputSystem_KS.GSXR_KSRight.inputDataKS.JoystickX = xy + (int)(context.ReadValue<Vector2>().x * 10);
- API_GSXR_Module_InputSystem_KS.GSXR_KSRight.inputDataKS.JoystickY = xy + (int)(context.ReadValue<Vector2>().y * 10);
- break;
- case "grip":
- API_GSXR_Module_InputSystem_KS.GSXR_KSRight.inputDataKS.HallInside = 10 - (int)((context.ReadValue<float>()) * 10f);
- break;
- case "grippressed":
- API_GSXR_Module_InputSystem_KS.GSXR_KSRight.inputDataKS.inputKeys.InputDataAddKey(InputKeyCode.RHallInside, InputKeyState.DOWN);
- break;
- case "trigger":
- API_GSXR_Module_InputSystem_KS.GSXR_KSRight.inputDataKS.HallFoward = 10 - (int)((context.ReadValue<float>()) * 10f);
- break;
- case "menu":
- // Module_InputSystem.instance.SetActiveInputDevice(InputDeviceType.KS, true);
- // Module_InputSystem.instance.SetActiveInputDevice(InputDeviceType.Head, false);
- // API_GSXR_Module_InputSystem_KS.GSXR_KSRight.inputDataKS.inputKeys.InputDataAddKey(InputKeyCode.RFunction, InputKeyState.DOWN);
- API_GSXR_Module_InputSystem_Head.GSXR_HeadAddKey(InputKeyCode.Enter, InputKeyState.DOWN);
- break;
- }
- }
- // Debug.Log("OnEvent=name==>" + context.control.name);
- /*
- Debug.Log("OnEvent=layout==>" + context.control.layout);
- Debug.Log("OnEvent=noisy==>" + context.control.noisy);
- Debug.Log("OnEvent=path==>" + context.control.path);
- Debug.Log("OnEvent=shortDisplayName==>" + context.control.shortDisplayName);
- Debug.Log("OnEvent=synthetic==>" + context.control.synthetic);
- Debug.Log("OnEvent=valueSizeInBytes==>" + context.control.valueSizeInBytes);
- Debug.Log("OnEvent=valueType==>" + context.control.valueType.Name);
- Debug.Log("OnEvent=variants==>" + context.control.variants);
- Debug.Log("OnEvent=variants==>" + context.control.EvaluateMagnitude());*/
- }
|