MoveChange.cs 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. using SC.XR.Unity.Module_InputSystem;
  2. using UnityEngine;
  3. public class MoveChange : MonoBehaviour
  4. {
  5. [SerializeField] private GameObject moveGame;
  6. [SerializeField] private Transform parent;
  7. private bool isDown;
  8. private float y;
  9. void Start()
  10. {
  11. moveGame = GameObject.Find("ARSpaceForAll/mesh_test");
  12. parent = GameObject.Find("ARSpaceForAll").transform;
  13. y = moveGame.transform.position.y;
  14. DispatcherBase.KeyDownDelegateRegister(keyDownEventDelegate);
  15. DispatcherBase.KeyUpDelegateRegister(keyUpEventDelegate);
  16. }
  17. private void keyUpEventDelegate(InputKeyCode keyCode, InputDevicePartBase part)
  18. {
  19. Debug.Log("keyDownEventDelegate===>" + keyCode);
  20. moveGame.transform.parent = parent;
  21. isDown = false;
  22. }
  23. private void keyDownEventDelegate(InputKeyCode keyCode, InputDevicePartBase part)
  24. {
  25. if (!SetSceneActive.active)
  26. return;
  27. Debug.Log("keyUpEventDelegate===>" + keyCode);
  28. #if UNITY_EDITOR
  29. moveGame.transform.parent = OpenXRCamera.Instance.head;
  30. #else
  31. switch( DeviceType.type)
  32. {
  33. case "Nreal":
  34. moveGame.transform.parent = API_GSXR_Module_InputSystem_KS.GSXR_KSRight.transform;// OpenXRCamera.Instance.head;
  35. break;
  36. case "A01":
  37. moveGame.transform.parent = OpenXRCamera.Instance.head;
  38. break;
  39. case "Phone":
  40. moveGame.transform.parent = OpenXRCamera.Instance.head;
  41. break;
  42. }
  43. #endif
  44. isDown = true;
  45. }
  46. void Update()
  47. {
  48. if (isDown && SetSceneActive.active)
  49. {
  50. moveGame.transform.eulerAngles = new Vector3(0, moveGame.transform.eulerAngles.y, 0);
  51. moveGame.transform.position = new Vector3(moveGame.transform.position.x, y, moveGame.transform.position.z);
  52. }
  53. }
  54. }