Browse Source

多人交互2

DGJ 1 year ago
parent
commit
17d8230c64

+ 215 - 170
Assets/MRNavigatorPro.unity

@@ -2247,7 +2247,7 @@ MeshFilter:
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 375338274}
-  m_Mesh: {fileID: 1287470636}
+  m_Mesh: {fileID: 883604989}
 --- !u!114 &375338278
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -2534,7 +2534,7 @@ MonoBehaviour:
   m_FallbackScreenDPI: 96
   m_DefaultSpriteDPI: 96
   m_DynamicPixelsPerUnit: 1
-  m_PresetInfoIsWorld: 0
+  m_PresetInfoIsWorld: 1
 --- !u!223 &535980089
 Canvas:
   m_ObjectHideFlags: 0
@@ -4155,6 +4155,170 @@ PrefabInstance:
       objectReference: {fileID: 0}
     m_RemovedComponents: []
   m_SourcePrefab: {fileID: 100100000, guid: 697420e71aa8bea4b938e2f3986965a6, type: 3}
+--- !u!43 &883604989
+Mesh:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: 
+  serializedVersion: 10
+  m_SubMeshes:
+  - serializedVersion: 2
+    firstByte: 0
+    indexCount: 0
+    topology: 5
+    baseVertex: 0
+    firstVertex: 0
+    vertexCount: 0
+    localAABB:
+      m_Center: {x: 0, y: 0, z: 0}
+      m_Extent: {x: 0, y: 0, z: 0}
+  m_Shapes:
+    vertices: []
+    shapes: []
+    channels: []
+    fullWeights: []
+  m_BindPose: []
+  m_BoneNameHashes: 
+  m_RootBoneNameHash: 0
+  m_BonesAABB: []
+  m_VariableBoneCountWeights:
+    m_Data: 
+  m_MeshCompression: 0
+  m_IsReadable: 1
+  m_KeepVertices: 0
+  m_KeepIndices: 0
+  m_IndexFormat: 1
+  m_IndexBuffer: 
+  m_VertexData:
+    serializedVersion: 3
+    m_VertexCount: 0
+    m_Channels:
+    - stream: 0
+      offset: 0
+      format: 0
+      dimension: 3
+    - stream: 0
+      offset: 0
+      format: 0
+      dimension: 0
+    - stream: 0
+      offset: 0
+      format: 0
+      dimension: 0
+    - stream: 0
+      offset: 0
+      format: 0
+      dimension: 0
+    - stream: 0
+      offset: 0
+      format: 0
+      dimension: 0
+    - stream: 0
+      offset: 0
+      format: 0
+      dimension: 0
+    - stream: 0
+      offset: 0
+      format: 0
+      dimension: 0
+    - stream: 0
+      offset: 0
+      format: 0
+      dimension: 0
+    - stream: 0
+      offset: 0
+      format: 0
+      dimension: 0
+    - stream: 0
+      offset: 0
+      format: 0
+      dimension: 0
+    - stream: 0
+      offset: 0
+      format: 0
+      dimension: 0
+    - stream: 0
+      offset: 0
+      format: 0
+      dimension: 0
+    - stream: 0
+      offset: 0
+      format: 0
+      dimension: 0
+    - stream: 0
+      offset: 0
+      format: 0
+      dimension: 0
+    m_DataSize: 0
+    _typelessdata: 
+  m_CompressedMesh:
+    m_Vertices:
+      m_NumItems: 0
+      m_Range: 0
+      m_Start: 0
+      m_Data: 
+      m_BitSize: 0
+    m_UV:
+      m_NumItems: 0
+      m_Range: 0
+      m_Start: 0
+      m_Data: 
+      m_BitSize: 0
+    m_Normals:
+      m_NumItems: 0
+      m_Range: 0
+      m_Start: 0
+      m_Data: 
+      m_BitSize: 0
+    m_Tangents:
+      m_NumItems: 0
+      m_Range: 0
+      m_Start: 0
+      m_Data: 
+      m_BitSize: 0
+    m_Weights:
+      m_NumItems: 0
+      m_Data: 
+      m_BitSize: 0
+    m_NormalSigns:
+      m_NumItems: 0
+      m_Data: 
+      m_BitSize: 0
+    m_TangentSigns:
+      m_NumItems: 0
+      m_Data: 
+      m_BitSize: 0
+    m_FloatColors:
+      m_NumItems: 0
+      m_Range: 0
+      m_Start: 0
+      m_Data: 
+      m_BitSize: 0
+    m_BoneIndices:
+      m_NumItems: 0
+      m_Data: 
+      m_BitSize: 0
+    m_Triangles:
+      m_NumItems: 0
+      m_Data: 
+      m_BitSize: 0
+    m_UVInfo: 0
+  m_LocalAABB:
+    m_Center: {x: 0, y: 0, z: 0}
+    m_Extent: {x: 1.7014117e+38, y: 1.7014117e+38, z: 1.7014117e+38}
+  m_MeshUsageFlags: 0
+  m_BakedConvexCollisionMesh: 
+  m_BakedTriangleCollisionMesh: 
+  m_MeshMetrics[0]: 1
+  m_MeshMetrics[1]: 1
+  m_MeshOptimizationFlags: 1
+  m_StreamData:
+    serializedVersion: 2
+    offset: 0
+    size: 0
+    path: 
 --- !u!1 &918054596
 GameObject:
   m_ObjectHideFlags: 0
@@ -5168,170 +5332,6 @@ Transform:
   m_Father: {fileID: 210725851}
   m_RootOrder: 10
   m_LocalEulerAnglesHint: {x: 0, y: -0.08, z: 0}
---- !u!43 &1287470636
-Mesh:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_Name: 
-  serializedVersion: 10
-  m_SubMeshes:
-  - serializedVersion: 2
-    firstByte: 0
-    indexCount: 0
-    topology: 5
-    baseVertex: 0
-    firstVertex: 0
-    vertexCount: 0
-    localAABB:
-      m_Center: {x: 0, y: 0, z: 0}
-      m_Extent: {x: 0, y: 0, z: 0}
-  m_Shapes:
-    vertices: []
-    shapes: []
-    channels: []
-    fullWeights: []
-  m_BindPose: []
-  m_BoneNameHashes: 
-  m_RootBoneNameHash: 0
-  m_BonesAABB: []
-  m_VariableBoneCountWeights:
-    m_Data: 
-  m_MeshCompression: 0
-  m_IsReadable: 1
-  m_KeepVertices: 0
-  m_KeepIndices: 0
-  m_IndexFormat: 1
-  m_IndexBuffer: 
-  m_VertexData:
-    serializedVersion: 3
-    m_VertexCount: 0
-    m_Channels:
-    - stream: 0
-      offset: 0
-      format: 0
-      dimension: 3
-    - stream: 0
-      offset: 0
-      format: 0
-      dimension: 0
-    - stream: 0
-      offset: 0
-      format: 0
-      dimension: 0
-    - stream: 0
-      offset: 0
-      format: 0
-      dimension: 0
-    - stream: 0
-      offset: 0
-      format: 0
-      dimension: 0
-    - stream: 0
-      offset: 0
-      format: 0
-      dimension: 0
-    - stream: 0
-      offset: 0
-      format: 0
-      dimension: 0
-    - stream: 0
-      offset: 0
-      format: 0
-      dimension: 0
-    - stream: 0
-      offset: 0
-      format: 0
-      dimension: 0
-    - stream: 0
-      offset: 0
-      format: 0
-      dimension: 0
-    - stream: 0
-      offset: 0
-      format: 0
-      dimension: 0
-    - stream: 0
-      offset: 0
-      format: 0
-      dimension: 0
-    - stream: 0
-      offset: 0
-      format: 0
-      dimension: 0
-    - stream: 0
-      offset: 0
-      format: 0
-      dimension: 0
-    m_DataSize: 0
-    _typelessdata: 
-  m_CompressedMesh:
-    m_Vertices:
-      m_NumItems: 0
-      m_Range: 0
-      m_Start: 0
-      m_Data: 
-      m_BitSize: 0
-    m_UV:
-      m_NumItems: 0
-      m_Range: 0
-      m_Start: 0
-      m_Data: 
-      m_BitSize: 0
-    m_Normals:
-      m_NumItems: 0
-      m_Range: 0
-      m_Start: 0
-      m_Data: 
-      m_BitSize: 0
-    m_Tangents:
-      m_NumItems: 0
-      m_Range: 0
-      m_Start: 0
-      m_Data: 
-      m_BitSize: 0
-    m_Weights:
-      m_NumItems: 0
-      m_Data: 
-      m_BitSize: 0
-    m_NormalSigns:
-      m_NumItems: 0
-      m_Data: 
-      m_BitSize: 0
-    m_TangentSigns:
-      m_NumItems: 0
-      m_Data: 
-      m_BitSize: 0
-    m_FloatColors:
-      m_NumItems: 0
-      m_Range: 0
-      m_Start: 0
-      m_Data: 
-      m_BitSize: 0
-    m_BoneIndices:
-      m_NumItems: 0
-      m_Data: 
-      m_BitSize: 0
-    m_Triangles:
-      m_NumItems: 0
-      m_Data: 
-      m_BitSize: 0
-    m_UVInfo: 0
-  m_LocalAABB:
-    m_Center: {x: 0, y: 0, z: 0}
-    m_Extent: {x: 1.7014117e+38, y: 1.7014117e+38, z: 1.7014117e+38}
-  m_MeshUsageFlags: 0
-  m_BakedConvexCollisionMesh: 
-  m_BakedTriangleCollisionMesh: 
-  m_MeshMetrics[0]: 1
-  m_MeshMetrics[1]: 1
-  m_MeshOptimizationFlags: 1
-  m_StreamData:
-    serializedVersion: 2
-    offset: 0
-    size: 0
-    path: 
 --- !u!1001 &1327983564
 PrefabInstance:
   m_ObjectHideFlags: 0
@@ -6689,7 +6689,7 @@ PrefabInstance:
     - target: {fileID: 2656584712679981451, guid: 3e8996c442fe40541beb734ca45f2bf6,
         type: 3}
       propertyPath: m_AnchoredPosition.y
-      value: -0.0026190043
+      value: -0.005143513
       objectReference: {fileID: 0}
     - target: {fileID: 2656584712838976906, guid: 3e8996c442fe40541beb734ca45f2bf6,
         type: 3}
@@ -6819,7 +6819,7 @@ PrefabInstance:
     - target: {fileID: 2656584713474595953, guid: 3e8996c442fe40541beb734ca45f2bf6,
         type: 3}
       propertyPath: m_AnchoredPosition.y
-      value: -0.0019066178
+      value: -0.002509072
       objectReference: {fileID: 0}
     - target: {fileID: 2656584713571100915, guid: 3e8996c442fe40541beb734ca45f2bf6,
         type: 3}
@@ -8230,6 +8230,51 @@ Transform:
     type: 3}
   m_PrefabInstance: {fileID: 1384597414}
   m_PrefabAsset: {fileID: 0}
+--- !u!1 &1833864534
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1833864536}
+  - component: {fileID: 1833864535}
+  m_Layer: 0
+  m_Name: MultiPlayerManager
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!114 &1833864535
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1833864534}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 721eee80d49234e4db95259bf7e21a4c, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  global: 1
+--- !u!4 &1833864536
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1833864534}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 7.8486805, y: -13.518863, z: 8.211521}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 0}
+  m_RootOrder: 22
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &1852879475
 GameObject:
   m_ObjectHideFlags: 0
@@ -9962,7 +10007,7 @@ PrefabInstance:
     - target: {fileID: 486518953982833418, guid: 6693e68f506a6c944b1783fb7e52a498,
         type: 3}
       propertyPath: m_AnchoredPosition.y
-      value: -0.0012581338
+      value: -0.0012666914
       objectReference: {fileID: 0}
     - target: {fileID: 486518953989235048, guid: 6693e68f506a6c944b1783fb7e52a498,
         type: 3}
@@ -13808,7 +13853,7 @@ RectTransform:
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 1}
   m_AnchorMax: {x: 1, y: 1}
-  m_AnchoredPosition: {x: 0, y: -0.0050791088}
+  m_AnchoredPosition: {x: 0, y: -0.005145018}
   m_SizeDelta: {x: 0, y: 0}
   m_Pivot: {x: 0, y: 1}
 --- !u!114 &1180406930876628118

+ 9 - 6
Assets/Script/MQTTClient.cs

@@ -11,7 +11,7 @@ public class MQTTClient : MonoSingleton<MQTTClient>
 {
     string front = "client/";
     string id = ""; 
-    string username = "u@unity2";// 需要根据服务器设置
+    string username = "u@unity1";// 需要根据服务器设置
     string password = null;// 需要根据服务器设置
     string rid = "mqttx_b4c02ddc"; //其他人的ID
     QTTManager qt;
@@ -61,11 +61,11 @@ public class MQTTClient : MonoSingleton<MQTTClient>
         try
         {
             JsonData data = JsonMapper.ToObject(msg);
-
+            Debug.Log(" DGJ === > " + data["type"].ToString());
             switch (data["type"].ToString())
             {
                 case "CamPos":
-
+                    Debug.Log("DGJ   ===>  CamPos");
                     // 根据 uid  同步Player 位置  如果没有就创建
                     MultiPlayerManager.Instance.ReceivedCamPos(obj.Topic, data);
                     break;
@@ -169,9 +169,12 @@ public class MQTTClient : MonoSingleton<MQTTClient>
         {
             JsonData json = new JsonData();
             json["type"] = "CamPos";
-            json["x"] = OpenXRCamera.Instance.head.position.x;
-            json["y"] = OpenXRCamera.Instance.head.position.y;
-            json["z"] = OpenXRCamera.Instance.head.position.z;
+            //  json["x"] = OpenXRCamera.Instance.head.position.x;
+            //json["y"] = OpenXRCamera.Instance.head.position.y;
+            //json["z"] = OpenXRCamera.Instance.head.position.z;
+            json["x"] = GameManager.Instance.Player.transform.localPosition.x;    
+            json["y"] = GameManager.Instance.Player.transform.localPosition.y;
+            json["z"] = GameManager.Instance.Player.transform.localPosition.z;
             json["Sid"] = "sid";//选择的场景id
             publish(Encoding.UTF8.GetBytes(json.ToJson()));
             yield return new WaitForSeconds(0.1f);

+ 9 - 2
Assets/Scripts/MultiPlayer/MultiPlayerManager.cs

@@ -36,23 +36,30 @@ public class MultiPlayerManager : MonoSingleton<MultiPlayerManager>
 
     public void ReceivedCamPos(string uid, JsonData data)
     {
+        Debug.Log("DGJ ===> ReceivedCamPos  " + uid);
         SyncObject syncData = new SyncObject();
         syncData.id = uid;
         syncData.pos = new Vector3(float.Parse(data["x"].ToString()), float.Parse(data["y"].ToString()), float.Parse(data["z"].ToString()));
-        OnSynObject(syncData);
+
+        foreach (var item in dicPlayer)
+        {
+            Debug.Log("DGJ  dicPlayer =====> " + item.Key);
+        }
 
         if (!dicPlayer.ContainsKey(uid))
         {
+            Debug.LogError("DGJ   ====>  " + uid);
             // 创建 
             GameObject player =  GameObject.Instantiate(Resources.Load<GameObject>("Template/Prefab/Player"));
             SynchronizationObject SyncPlayer = player.GetComponent<SynchronizationObject>();
+            player.transform.SetParent(GameManager.Instance.Player.transform.parent);
             SyncPlayer.uid = uid;
             SyncPlayer.InitData(syncData);
             dicPlayer.Add(SyncPlayer.uid, SyncPlayer);
             
 
         }
-     
+        OnSynObject(syncData);
     }
 
     public void ReceivedActiveSp(JsonData data)

+ 4 - 4
Assets/Scripts/MultiPlayer/SynchronizationObject.cs

@@ -37,19 +37,19 @@ public class SynchronizationObject : MonoBehaviour
     private void Update()
     {
         if(type == SyncObjectType.Player)
-        if (data != null && transform.position != data.pos)
+        if (data != null && transform.localPosition != data.pos)
         {
             framSpeed = Time.deltaTime * Speed;
-            dis = Vector3.Distance(transform.position, data.pos);
+            dis = Vector3.Distance(transform.localPosition, data.pos);
             pross = 0;
             if (framSpeed > dis)
             {
-                transform.position = data.pos;
+                transform.localPosition = data.pos;
             }
             else
             {
                 pross = framSpeed / dis;
-                transform.position = Vector3.Lerp(transform.position, data.pos, pross);
+                transform.localPosition = Vector3.Lerp(transform.localPosition, data.pos, pross);
             }
         }
     }

+ 182 - 182
Assets/Scripts/PlayerTrigger.cs

@@ -1,184 +1,184 @@
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-
-public class PlayerTrigger : MonoBehaviour
-{
-    private Vector3 m_LastPos;
-    //public GameObject MovePanel;
-    private bool m_IsDown;
-    private string m_Dir;
-    [Range(0.1f, 10f)]
-    public float Speed = 0.4f;
-    public List<Vector3> MovePoints
-    {
-        get; set;
-    }
-    private int m_MoveIndex;
-
-    private void Start()
-    {
-        m_LastPos = Vector3.zero;
-
-        //MovePanel.SetActive(false);
-        m_IsDown = false;
-
-        m_MoveIndex = 0;
-        MovePoints = new List<Vector3>();
-    }
-
-
-
-    private void LateUpdate()
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class PlayerTrigger : MonoBehaviour
+{
+    private Vector3 m_LastPos;
+    //public GameObject MovePanel;
+    private bool m_IsDown;
+    private string m_Dir;
+    [Range(0.1f, 10f)]
+    public float Speed = 0.4f;
+    public List<Vector3> MovePoints
     {
-        /*
-        if (API_GSXR_Slam.GSXR_Get_Head() != null)
-        {
-            transform.position = new Vector3(API_GSXR_Slam.GSXR_Get_Head().position.x, transform.position.y, API_GSXR_Slam.GSXR_Get_Head().position.z);
-            transform.eulerAngles = new Vector3(0, API_GSXR_Slam.GSXR_Get_Head().eulerAngles.y, 0);
-            if (GameManager.Instance.IsRuning)
-            {
-                //MovePanel.SetActive(true);
-                //MovePanel.transform.localEulerAngles = new Vector3(0, transform.localEulerAngles.y, 0);
-                //MovePanel.transform.localPosition = transform.localPosition + transform.forward * 0.8f + new Vector3(0, -1f, 0);
-                if (Vector3.Distance(m_LastPos, transform.position) < 0.1f)
-                {
-                    return;
-                }
-                m_LastPos = transform.position;
-                float x = transform.localPosition.x / GameManager.Instance.MapSize.x * GameManager.Instance.WebMapSize.x;
-                float y = transform.localPosition.z / GameManager.Instance.MapSize.y * GameManager.Instance.WebMapSize.y;
-                var pos = new Vector3(x, -y, 0);
-
-                HttpSocket.Instance.SendIpToPointPos(pos, (message) =>
-                {
-                    //Debug.Log(message);
-                });
-            }
-        }
+        get; set;
+    }
+    private int m_MoveIndex;
+
+    private void Start()
+    {
+        m_LastPos = Vector3.zero;
+
+        //MovePanel.SetActive(false);
+        m_IsDown = false;
+
+        m_MoveIndex = 0;
+        MovePoints = new List<Vector3>();
+    }
+
+
+
+    private void LateUpdate()
+    {
+        /*
+        if (API_GSXR_Slam.GSXR_Get_Head() != null)
+        {
+            transform.position = new Vector3(API_GSXR_Slam.GSXR_Get_Head().position.x, transform.position.y, API_GSXR_Slam.GSXR_Get_Head().position.z);
+            transform.eulerAngles = new Vector3(0, API_GSXR_Slam.GSXR_Get_Head().eulerAngles.y, 0);
+            if (GameManager.Instance.IsRuning)
+            {
+                //MovePanel.SetActive(true);
+                //MovePanel.transform.localEulerAngles = new Vector3(0, transform.localEulerAngles.y, 0);
+                //MovePanel.transform.localPosition = transform.localPosition + transform.forward * 0.8f + new Vector3(0, -1f, 0);
+                if (Vector3.Distance(m_LastPos, transform.position) < 0.1f)
+                {
+                    return;
+                }
+                m_LastPos = transform.position;
+                float x = transform.localPosition.x / GameManager.Instance.MapSize.x * GameManager.Instance.WebMapSize.x;
+                float y = transform.localPosition.z / GameManager.Instance.MapSize.y * GameManager.Instance.WebMapSize.y;
+                var pos = new Vector3(x, -y, 0);
+
+                HttpSocket.Instance.SendIpToPointPos(pos, (message) =>
+                {
+                    //Debug.Log(message);
+                });
+            }
+        }
         */
-        if (OpenXRCamera.Instance.head != null)
-        {
-            transform.position = new Vector3(OpenXRCamera.Instance.head.position.x, OpenXRCamera.Instance.head.position.y, OpenXRCamera.Instance.head.position.z);
-            transform.eulerAngles = new Vector3(0, OpenXRCamera.Instance.head.eulerAngles.y, 0);
-            if (GameManager.Instance.IsRuning)
-            {
-                //MovePanel.SetActive(true);
-                //MovePanel.transform.localEulerAngles = new Vector3(0, transform.localEulerAngles.y, 0);
-                //MovePanel.transform.localPosition = transform.localPosition + transform.forward * 0.8f + new Vector3(0, -1f, 0);
-                if (Vector3.Distance(m_LastPos, transform.position) < 0.1f)
-                {
-                    return;
-                }
-                m_LastPos = transform.position;
-                float x = transform.localPosition.x / GameManager.Instance.MapSize.x * GameManager.Instance.WebMapSize.x;
-                float y = transform.localPosition.z / GameManager.Instance.MapSize.y * GameManager.Instance.WebMapSize.y;
-                var pos = new Vector3(x, -y, 0);
-
-                HttpSocket.Instance.SendIpToPointPos(pos, (message) =>
-                {
-                    //Debug.Log(message);
-                });
-            }
-        }
-    }
-
-
-    private void OnTriggerEnter(Collider other)
-    {
-        if (other.gameObject.tag == "TriggerBox")
-        {
-            GameManager.Instance.OnColliderTriggerEnter(other);
-            Debug.Log("OnTriggerEnter    " + other.name);
-        }
-    }
-
-
-    private void OnTriggerExit(Collider other)
-    {
-        if (other.gameObject.tag == "TriggerBox")
-        {
-            GameManager.Instance.OnColliderTriggerExit(other);
-            Debug.Log("OnTriggerExit    " + other.name);
-        }
-    }
-
-
-    #region Player Move
-
-    public void PlayerMove(string dir)
-    {
-        m_IsDown = true;
-        m_Dir = dir;
-        StartCoroutine(CalMove());
-
-    }
-
-    public void StopMove()
-    {
-        m_IsDown = false;
-        //StopCoroutine(CalMove());
-        StopAllCoroutines();
-        m_Dir = null;
-    }
-
-    IEnumerator CalMove()
-    {
-        while (m_IsDown)
-        {
-            //yield return new WaitForSeconds(0.05f);
-            yield return new WaitForFixedUpdate();
-            Vector3 pos = Vector3.zero;
-            switch (m_Dir)
-            {
-                case "Front":
-                    //API_GSXR_Slam.GSXR_Get_Head().Translate(Vector3.forward * Time.deltaTime * Speed);
-                    pos = transform.forward * Time.deltaTime * Speed;
-                    break;
-                case "After":
-                    //API_GSXR_Slam.GSXR_Get_Head().Translate(Vector3.back * Time.deltaTime * Speed);
-                    pos = -transform.forward * Time.deltaTime * Speed;
-                    break;
-                case "Left":
-                    //API_GSXR_Slam.GSXR_Get_Head().Translate(Vector3.left * Time.deltaTime * Speed);
-                    pos = -transform.right * Time.deltaTime * Speed;
-                    break;
-                case "Right":
-                    //API_GSXR_Slam.GSXR_Get_Head().Translate(Vector3.right * Time.deltaTime * Speed);
-                    pos = transform.right * Time.deltaTime * Speed;
-                    break;
-                default:
-                    break;
-            }
-            var position = transform.localPosition + pos;
-            position = transform.parent.TransformPoint(position);
-            Debug.Log(position);
-#if UNITY_EDITOR
-            API_GSXR_Slam.GSXR_Get_Head().position = position;
-#elif UNITY_ANDROID
-            API_GSXR_Slam.GSXR_Get_Head().position = position;
-#endif
-            Debug.Log("m_Dir:" + m_Dir.ToString() + "=====" + API_GSXR_Slam.GSXR_Get_Head().localPosition.ToString());
-        }
-    }
-
-    public void MoveNextPoint()
-    {
-        if (MovePoints.Count > 0)
-        {
-            m_MoveIndex++;
-
-            m_MoveIndex = m_MoveIndex < MovePoints.Count ? m_MoveIndex : 0;
-            var position = transform.parent.TransformPoint(new Vector3(MovePoints[m_MoveIndex].x, transform.localPosition.y, MovePoints[m_MoveIndex].z));
-#if UNITY_EDITOR
-            API_GSXR_Slam.GSXR_Get_Head().position = position;
-#elif UNITY_ANDROID
-            API_GSXR_Slam.GSXR_Get_Head().position = position;
-#endif
-        }
-        Debug.Log("m_MoveIndex:" + m_MoveIndex.ToString() + "=====" + API_GSXR_Slam.GSXR_Get_Head().localPosition.ToString());
-        Debug.Log(transform.position);
-    }
-
-    #endregion
-}
+        if (OpenXRCamera.Instance.head != null)
+        {
+            transform.position = new Vector3(OpenXRCamera.Instance.head.position.x, OpenXRCamera.Instance.head.position.y, OpenXRCamera.Instance.head.position.z);
+            transform.eulerAngles = new Vector3(0, OpenXRCamera.Instance.head.eulerAngles.y, 0);
+            if (GameManager.Instance.IsRuning)
+            {
+                //MovePanel.SetActive(true);
+                //MovePanel.transform.localEulerAngles = new Vector3(0, transform.localEulerAngles.y, 0);
+                //MovePanel.transform.localPosition = transform.localPosition + transform.forward * 0.8f + new Vector3(0, -1f, 0);
+                if (Vector3.Distance(m_LastPos, transform.position) < 0.1f)
+                {
+                    return;
+                }
+                m_LastPos = transform.position;
+                float x = transform.localPosition.x / GameManager.Instance.MapSize.x * GameManager.Instance.WebMapSize.x;
+                float y = transform.localPosition.z / GameManager.Instance.MapSize.y * GameManager.Instance.WebMapSize.y;
+                var pos = new Vector3(x, -y, 0);
+
+                HttpSocket.Instance.SendIpToPointPos(pos, (message) =>
+                {
+                    //Debug.Log(message);
+                });
+            }
+        }
+    }
+
+
+    private void OnTriggerEnter(Collider other)
+    {
+        if (other.gameObject.tag == "TriggerBox")
+        {
+            GameManager.Instance.OnColliderTriggerEnter(other);
+            Debug.Log("OnTriggerEnter    " + other.name);
+        }
+    }
+
+
+    private void OnTriggerExit(Collider other)
+    {
+        if (other.gameObject.tag == "TriggerBox")
+        {
+            GameManager.Instance.OnColliderTriggerExit(other);
+            Debug.Log("OnTriggerExit    " + other.name);
+        }
+    }
+
+
+    #region Player Move
+
+    public void PlayerMove(string dir)
+    {
+        m_IsDown = true;
+        m_Dir = dir;
+        StartCoroutine(CalMove());
+
+    }
+
+    public void StopMove()
+    {
+        m_IsDown = false;
+        //StopCoroutine(CalMove());
+        StopAllCoroutines();
+        m_Dir = null;
+    }
+
+    IEnumerator CalMove()
+    {
+        while (m_IsDown)
+        {
+            //yield return new WaitForSeconds(0.05f);
+            yield return new WaitForFixedUpdate();
+            Vector3 pos = Vector3.zero;
+            switch (m_Dir)
+            {
+                case "Front":
+                    //API_GSXR_Slam.GSXR_Get_Head().Translate(Vector3.forward * Time.deltaTime * Speed);
+                    pos = transform.forward * Time.deltaTime * Speed;
+                    break;
+                case "After":
+                    //API_GSXR_Slam.GSXR_Get_Head().Translate(Vector3.back * Time.deltaTime * Speed);
+                    pos = -transform.forward * Time.deltaTime * Speed;
+                    break;
+                case "Left":
+                    //API_GSXR_Slam.GSXR_Get_Head().Translate(Vector3.left * Time.deltaTime * Speed);
+                    pos = -transform.right * Time.deltaTime * Speed;
+                    break;
+                case "Right":
+                    //API_GSXR_Slam.GSXR_Get_Head().Translate(Vector3.right * Time.deltaTime * Speed);
+                    pos = transform.right * Time.deltaTime * Speed;
+                    break;
+                default:
+                    break;
+            }
+            var position = transform.localPosition + pos;
+            position = transform.parent.TransformPoint(position);
+            Debug.Log(position);
+#if UNITY_EDITOR
+            API_GSXR_Slam.GSXR_Get_Head().position = position;
+#elif UNITY_ANDROID
+            API_GSXR_Slam.GSXR_Get_Head().position = position;
+#endif
+            Debug.Log("m_Dir:" + m_Dir.ToString() + "=====" + API_GSXR_Slam.GSXR_Get_Head().localPosition.ToString());
+        }
+    }
+
+    public void MoveNextPoint()
+    {
+        if (MovePoints.Count > 0)
+        {
+            m_MoveIndex++;
+
+            m_MoveIndex = m_MoveIndex < MovePoints.Count ? m_MoveIndex : 0;
+            var position = transform.parent.TransformPoint(new Vector3(MovePoints[m_MoveIndex].x, transform.localPosition.y, MovePoints[m_MoveIndex].z));
+#if UNITY_EDITOR
+            API_GSXR_Slam.GSXR_Get_Head().position = position;
+#elif UNITY_ANDROID
+            API_GSXR_Slam.GSXR_Get_Head().position = position;
+#endif
+        }
+        Debug.Log("m_MoveIndex:" + m_MoveIndex.ToString() + "=====" + API_GSXR_Slam.GSXR_Get_Head().localPosition.ToString());
+        Debug.Log(transform.position);
+    }
+
+    #endregion
+}

+ 9 - 1
Assets/Scripts/UI/GameManager.cs

@@ -1513,6 +1513,9 @@ public class GameManager : MonoSingleton<GameManager>
             if (other.name == ListColliderBoxs[i].name)
             {
                 ListShowObjs[i].gameObject.SetActive(true);
+
+                MQTTClient.Instance.sendActiveSp(ListShowObjs[i].name, true);
+
                 Debug.Log(i);
                 if (isShowLoacalShowObjs)
                     ListLocalShowObjs[i].gameObject.SetActive(true);
@@ -1528,7 +1531,9 @@ public class GameManager : MonoSingleton<GameManager>
                 if (SpoitIndex >= 0 && IsStartEditor)
                 {
                     ListShowObjs[SpoitIndex].gameObject.SetActive(false);
-                   
+
+                    MQTTClient.Instance.sendActiveSp(ListShowObjs[SpoitIndex].name, false);
+
                     if (isShowLoacalShowObjs)
                         ListLocalShowObjs[SpoitIndex].gameObject.SetActive(false);
                     ListCrystals[SpoitIndex].gameObject.SetActive(true);
@@ -1556,6 +1561,9 @@ public class GameManager : MonoSingleton<GameManager>
         else
         {
             ListShowObjs[SpoitIndex].gameObject.SetActive(false);
+
+            MQTTClient.Instance.sendActiveSp(ListShowObjs[SpoitIndex].name, false);
+
             if (isShowLoacalShowObjs)
                 ListLocalShowObjs[SpoitIndex].gameObject.SetActive(false);
             ListCrystals[SpoitIndex].gameObject.SetActive(true);