Browse Source

增加设置SceneRoot位置旋转脚本

蓝色星空 1 year ago
parent
commit
725c36dabf

+ 48 - 0
Assets/Prefab/BluePrefabs/BlueRoot.prefab

@@ -287,6 +287,7 @@ Transform:
   - {fileID: 8294022177412783077}
   - {fileID: 3420359310440475008}
   - {fileID: 381987406448428764}
+  - {fileID: 872102723050277368}
   m_Father: {fileID: 0}
   m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -461,6 +462,9 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 8bbfd53e6654ed64d87de36e6e591752, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
+  brokerAddress: api-fat1.ghz-tech.com
+  brokerPort: 1883
+  mqttUserName: u@unity3
 --- !u!1 &7412898482642897146
 GameObject:
   m_ObjectHideFlags: 0
@@ -627,3 +631,47 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 6c86d5592573321408bd23353c7aa8ca, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
+--- !u!1 &9222738765525641863
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 872102723050277368}
+  - component: {fileID: 4733779609526723657}
+  m_Layer: 0
+  m_Name: SetSceneRootPosRot
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 0
+--- !u!4 &872102723050277368
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 9222738765525641863}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 5886227751517987777}
+  m_RootOrder: 7
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &4733779609526723657
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 9222738765525641863}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: bbae98c5235696a408f96ad2b578b5ee, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 

+ 42 - 0
Assets/Scripts/Blue/Controller/SetSceneRootPosRot.cs

@@ -0,0 +1,42 @@
+using Immersal.AR;
+using UnityEngine;
+
+/// <summary>
+/// 设置SceneRoot的位置和旋转
+/// 未定位时设置场景位置
+/// 定位后设置场景位置
+/// </summary>
+public class SetSceneRootPosRot : AbstractController
+{
+    private Transform mSceneRoot;
+    private Transform mA;
+    void Start()
+    {
+        mSceneRoot = GameObject.Find("ARSpaceForAll/mesh_test/SceneRoot").transform;
+        mA = GameObject.Find("ARSpaceForAll/mesh_test").transform.Find("A");
+    }
+    private Vector3 spacePos = Vector3.zero; // 定位后
+    private Vector3 tempPos = Vector3.zero; // 定位前
+    private Vector3 tempRot = Vector3.zero; // 定位前
+    private void Update()
+    {
+        if (ARSpace.isFind)
+        {
+            Debug.Log("定位成功");
+            spacePos.y = -1.5f;
+            spacePos.z = mA.localPosition.z;
+            mSceneRoot.localPosition = spacePos;
+
+            mSceneRoot.localEulerAngles = Vector3.zero;
+        }
+        else
+        {
+            Debug.Log("正在定位");
+            tempPos.y = -1.5f;
+            mSceneRoot.position = tempPos;
+
+            tempRot.y = mSceneRoot.parent.localEulerAngles.y * -1;
+            mSceneRoot.localEulerAngles = tempRot;
+        }
+    }
+}

+ 11 - 0
Assets/Scripts/Blue/Controller/SetSceneRootPosRot.cs.meta

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