Browse Source

添加MoveChange控制脚本

蓝色星空 1 year ago
parent
commit
1fb1629313

+ 8 - 0
Assets/Scripts/Blue/Editor.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: cd0a74391b392774682b6fa57e7b3c1d
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 22 - 0
Assets/Scripts/Blue/Editor/EditorInit.cs

@@ -0,0 +1,22 @@
+using UnityEditor;
+using UnityEngine;
+
+public static class EditorInit
+{
+    [MenuItem("EditorExtensions/ProjectInit")]
+    static void Init()
+    {
+        // SetBtn 设置父子关系
+        Transform CenterCamera = GameObject.Find("SDKSystem/NRCameraRig/CenterCamera").gameObject.transform;
+        Transform SetBtn = GameObject.Find("SetBtn").gameObject.transform;
+        SetBtn.SetParent(CenterCamera);
+        Debug.LogError("SetBtn 设置父子关系");
+
+        // MoveScenePanel 设置父子关系
+        GameObject MoveScenePanel = GameObject.Find("EditorCanvas/MoveScenePanel");
+        MoveScenePanel.SetActive(false);
+        Transform AnchorBtn = SetBtn.Find("AnchorBtn");
+        MoveScenePanel.transform.SetParent(AnchorBtn);
+        Debug.LogError("MoveScenePanel 设置父子关系");
+    }
+}

+ 11 - 0
Assets/Scripts/Blue/Editor/EditorInit.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 9504f6c2171570d4e9682ccb15b3b569
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 4 - 0
Assets/Scripts/Blue/Model/SetSceneActive.cs

@@ -0,0 +1,4 @@
+public static class SetSceneActive
+{
+    public static bool active = false;
+}

+ 11 - 0
Assets/Scripts/Blue/Model/SetSceneActive.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: b1b15b1d51f46724fb5f536539003628
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 70 - 0
Assets/Scripts/Blue/Temp/MoveChange.cs

@@ -0,0 +1,70 @@
+using SC.XR.Unity.Module_InputSystem;
+using UnityEngine;
+
+public class MoveChange : MonoBehaviour
+{
+    [SerializeField] private GameObject moveGame;
+    [SerializeField] private Transform parent;
+
+    private bool isDown;
+    private float y;
+    void Start()
+    {
+        moveGame = GameObject.Find("ARSpaceForAll/mesh_test");
+        parent = GameObject.Find("ARSpaceForAll").transform;
+        SetPosRot();
+        DispatcherBase.KeyDownDelegateRegister(keyDownEventDelegate);
+        DispatcherBase.KeyUpDelegateRegister(keyUpEventDelegate);
+    }
+
+    private void SetPosRot()
+    {
+        float posX = PlayerPrefs.GetFloat("meshTest_PosX");
+        float posZ = PlayerPrefs.GetFloat("meshTest_PosZ");
+        Vector3 pos = new Vector3(posX, 0, posZ);
+        moveGame.transform.localPosition = pos;
+
+        float rotY = PlayerPrefs.GetFloat("meshTest_RotY");
+        moveGame.transform.localEulerAngles = new Vector3(0, rotY, 0);
+    }
+    private void keyUpEventDelegate(InputKeyCode keyCode, InputDevicePartBase part)
+    {
+        Debug.Log("keyDownEventDelegate===>" + keyCode);
+        moveGame.transform.parent = parent;
+        y = moveGame.transform.position.y;
+        isDown = false;
+    }
+
+    private void keyDownEventDelegate(InputKeyCode keyCode, InputDevicePartBase part)
+    {
+        if (!SetSceneActive.active)
+            return;
+        Debug.Log("keyUpEventDelegate===>" + keyCode);
+#if UNITY_EDITOR
+        moveGame.transform.parent = OpenXRCamera.Instance.head;
+#else
+        switch( DeviceType.type)
+        {
+            case "Nreal":
+            moveGame.transform.parent = API_GSXR_Module_InputSystem_KS.GSXR_KSRight.transform;// OpenXRCamera.Instance.head;
+            break;
+            case "A01":
+            moveGame.transform.parent = OpenXRCamera.Instance.head;
+            break;
+            case "Phone":
+            moveGame.transform.parent = OpenXRCamera.Instance.head;
+            break;
+        }
+#endif
+        isDown = true;
+    }
+
+    void Update()
+    {
+        if (isDown && SetSceneActive.active)
+        {
+            moveGame.transform.eulerAngles = new Vector3(0, moveGame.transform.eulerAngles.y, 0);
+            moveGame.transform.position = new Vector3(moveGame.transform.position.x, y, moveGame.transform.position.z);
+        }
+    }
+}

+ 11 - 0
Assets/Scripts/Blue/Temp/MoveChange.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 17ee6c5630c36954aa04b75d7a903889
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: