Browse Source

添加发送实时位置

胡佳骏 1 year ago
parent
commit
ff8d3c9f3b

+ 169 - 169
Assets/MRNavigatorPro.unity

@@ -2247,7 +2247,7 @@ MeshFilter:
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 375338274}
-  m_Mesh: {fileID: 1710439311}
+  m_Mesh: {fileID: 1984000130}
 --- !u!114 &375338278
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -6650,7 +6650,7 @@ PrefabInstance:
     - target: {fileID: 2656584712679981451, guid: 3e8996c442fe40541beb734ca45f2bf6,
         type: 3}
       propertyPath: m_AnchoredPosition.y
-      value: -0.0023013395
+      value: -0.00513412
       objectReference: {fileID: 0}
     - target: {fileID: 2656584712838976906, guid: 3e8996c442fe40541beb734ca45f2bf6,
         type: 3}
@@ -6780,7 +6780,7 @@ PrefabInstance:
     - target: {fileID: 2656584713474595953, guid: 3e8996c442fe40541beb734ca45f2bf6,
         type: 3}
       propertyPath: m_AnchoredPosition.y
-      value: -0.0037937537
+      value: -0.0019349984
       objectReference: {fileID: 0}
     - target: {fileID: 2656584713571100915, guid: 3e8996c442fe40541beb734ca45f2bf6,
         type: 3}
@@ -7740,170 +7740,6 @@ GameObject:
     type: 3}
   m_PrefabInstance: {fileID: 344366729}
   m_PrefabAsset: {fileID: 0}
---- !u!43 &1710439311
-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 &1719082178
 GameObject:
   m_ObjectHideFlags: 0
@@ -9678,6 +9514,170 @@ MeshFilter:
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 1951245951}
   m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!43 &1984000130
+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 &1993328806
 GameObject:
   m_ObjectHideFlags: 0
@@ -10406,7 +10406,7 @@ PrefabInstance:
     - target: {fileID: 486518953982833418, guid: 6693e68f506a6c944b1783fb7e52a498,
         type: 3}
       propertyPath: m_AnchoredPosition.y
-      value: -0.0012925363
+      value: -0.0012298113
       objectReference: {fileID: 0}
     - target: {fileID: 486518953989235048, guid: 6693e68f506a6c944b1783fb7e52a498,
         type: 3}
@@ -14252,7 +14252,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.0023118989}
+  m_AnchoredPosition: {x: 0, y: -0.0051133865}
   m_SizeDelta: {x: 0, y: 0}
   m_Pivot: {x: 0, y: 1}
 --- !u!114 &1180406930876628118

+ 44 - 5
Assets/Script/MQTTClient.cs

@@ -114,6 +114,45 @@ public class MQTTClient : MonoSingleton<MQTTClient>
         DisConnect();
     }
 
+    public void setData(JsonData data)
+    {
+        //MQTTClinet  连接
+        MQTTClient.Instance.SetUserName(data["auth"].ToString());
+        MQTTClient.Instance.SetFront(data["topicPrefix"].ToString());
+        front += data["clientIdPrefix"].ToString()+"/";
+    }
+
+    public void PublicPosScene(string sid,string pos)
+    {
+        ;
+        if (qt != null && qt.IsConnect())
+        {
+            Debug.Log("发送===》"+ "10001/realtime/project/" + sid+"_"+ pos);
+            publish("10001/realtime/project/" + sid,Encoding.UTF8.GetBytes(pos));
+        }
+    }
+
+
+    public void SubscribeScene(string sid)
+    {
+
+        Debug.Log(" DGJ   =====> Subscribe " + id);
+        ushort s = qt.Subscribe(
+                        new string[]
+                        {
+                              front+id,
+                              front+sid
+                        },
+                        new byte[]
+                        {
+
+                                MqttMsgBase.QOS_LEVEL_EXACTLY_ONCE,
+                                MqttMsgBase.QOS_LEVEL_EXACTLY_ONCE
+
+                        });
+    }
+
+
     public void SetUserName(string username)
     {
         if (username != null)
@@ -224,7 +263,7 @@ public class MQTTClient : MonoSingleton<MQTTClient>
                 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()));
+                publish(rid,Encoding.UTF8.GetBytes(json.ToJson()));
             }
            
             yield return new WaitForSeconds(0.1f);
@@ -238,7 +277,7 @@ public class MQTTClient : MonoSingleton<MQTTClient>
         json["Sid"] = "sid";//选择的场景id
         json["spid"] = spid;//景点id
         json["isOpen"] = isOpen;//是否打开
-        publish(Encoding.UTF8.GetBytes(json.ToJson()));
+        publish(rid,Encoding.UTF8.GetBytes(json.ToJson()));
         Debug.Log("MQtt  发送manage");
     }
 
@@ -253,17 +292,17 @@ public class MQTTClient : MonoSingleton<MQTTClient>
         json["videoId"] = videoId;//视频id
         json["isplay"] = isplay;//是否播放
         json["jindu"] = jindu;//视频进度
-        publish(Encoding.UTF8.GetBytes(json.ToJson()));
+        publish(rid,Encoding.UTF8.GetBytes(json.ToJson()));
         Debug.Log("MQtt  发送manage");
     }
 
 
-    void publish(byte[] bs)
+    void publish(string str,byte[] bs)
     {
         if(qt!=null&& qt.IsConnect())
         {
            // Debug.Log(id + "  DGJ  publish =====>  " + front+rid + "   " + bs.Length);
-            qt.Publish(rid, bs, MqttMsgBase.QOS_LEVEL_EXACTLY_ONCE, false);
+            qt.Publish(str, bs, MqttMsgBase.QOS_LEVEL_EXACTLY_ONCE, false);
         }
         else
         {

+ 3 - 4
Assets/Scripts/CalMap.cs

@@ -30,15 +30,14 @@ public class CalMap : MonoBehaviour
             if (player != null && GameManager.Instance.isStart)
             {
 
-                 float rot = player.localEulerAngles.y;
-                var pos = new Vector3(Math.Abs(player.localPosition.x) / GameManager.Instance.MapSize.x * GameManager.Instance.MinMapSize.x, -Math.Abs(player.localPosition.z) / GameManager.Instance.MapSize.y * GameManager.Instance.MinMapSize.y, 0);
+                float rot = player.localEulerAngles.y-180;
+                var pos = new Vector3(GameManager.Instance.MinMapSize.x-Math.Abs(player.localPosition.x) / GameManager.Instance.MapSize.x * GameManager.Instance.MinMapSize.x, -Math.Abs(player.localPosition.z) / GameManager.Instance.MapSize.y * GameManager.Instance.MinMapSize.y, 0);
       
-                if (player.localPosition.x < 0 || player.localPosition.z > 0)
+                if (player.localPosition.x < 0 || player.localPosition.y > 0)
                 {
                     return;
                 }
 
-             //   Debug.Log(pos);
                 m_Map.ShowPlayer(pos, rot);
             }
         }

+ 1 - 0
Assets/Scripts/Net/HttpTool.cs

@@ -108,6 +108,7 @@ public class HttpTool : MonoSingleton<HttpTool>
         {
             webRequest = new UnityWebRequest(url, "POST");
         }
+        Debug.Log(url + "开始通讯 URL " + url);
         initHead();
         using (webRequest)
         {

+ 34 - 0
Assets/Scripts/UI/GameManager.cs

@@ -304,6 +304,8 @@ public class GameManager : MonoSingleton<GameManager>
             imgMat.release();
         }
         catch { }
+
+
         this.gameObject.AddComponent<TimerMgr>();
         // PlayerPrefs.DeleteAll();
         isStart = false;
@@ -389,7 +391,36 @@ public class GameManager : MonoSingleton<GameManager>
         tstart = new ThreadStart(subThread);
         thread = new Thread(tstart);
         thread.Start();
+
+        StartCoroutine(startSendPos());
+    }
+
+    IEnumerator startSendPos()
+    {
+
+        while(true)
+        {
+            if (Player != null && GameManager.Instance.isStart)
+            {
+
+                float rot = Player.transform.localEulerAngles.y - 180;
+                var pos = new Vector3(GameManager.Instance.MinMapSize.x - Math.Abs(Player.transform.localPosition.x) / GameManager.Instance.MapSize.x * GameManager.Instance.MinMapSize.x, -Math.Abs(Player.transform.localPosition.z) / GameManager.Instance.MapSize.y * GameManager.Instance.MinMapSize.y, 0);
+
+                JsonData data = new JsonData();
+                data["sn"] = SendSN.GetSN();
+                data["position"] = new JsonData();
+                data["position"]["x"] = pos.x / GameManager.Instance.MinMapSize.x;
+                data["position"]["y"] = -pos.y / GameManager.Instance.MinMapSize.y;
+
+                //send.sn = API_GSXR_Slam.SlamManager.plugin.SN;
+
+               ;
+                MQTTClient.Instance.PublicPosScene(SceneChoose.Sid.ToString(), data.ToJson());
+            }
+            yield return new WaitForSeconds(0.5f);
+        }
     }
+
     int downLoadCount = 0;
     private void LateUpdate()
     {
@@ -438,6 +469,8 @@ public class GameManager : MonoSingleton<GameManager>
             video.m_Video.transform.GetComponent<VideoPlayBtn>().PlayVideoAuto();
             avplayer = video.m_Video;
         }
+
+
     }
     float lockTime = 0;
    public  AVProVideoPlayer avplayer;
@@ -1020,6 +1053,7 @@ public class GameManager : MonoSingleton<GameManager>
 
         if(scene.width>0 &&scene.length>0)
         {
+            Debug.Log("playerPos===>" + isStart);
             //Debug.Log(scene.width + "    " + scene.length);
             isStart = true;
             PointB.position = Vector3.zero;

+ 21 - 2
Assets/Scripts/UI/LoginPanel.cs

@@ -397,11 +397,30 @@ public class LoginPanel : BaseUI
             COSDownLoad.Instance.Credential();
 
             HttpTool.Instance.Get("/user/getUserInfo", GetUserInfoCallBack);
-
-          //  StartCoroutine(LoginCallBackYS(3f));
+            initMQtt();
+            //  StartCoroutine(LoginCallBackYS(3f));
         }
     }
 
+    private void initMQtt()
+    {
+        HttpTool.Instance.Get("/user/emqx/authentication", (msg) =>
+        {
+            Debug.Log("DGJ ===>  MQTT Callback  " + msg);
+            JsonData data = JsonMapper.ToObject(msg);
+            if (data["code"].ToString() == "200")
+            {
+                MQTTClient.Instance.setData(data["data"]);
+                MQTTClient.Instance.Connect();
+            }
+            else
+            {
+                Debug.LogError("MQTT username  请求失败  " + data["code"].ToString());
+            }
+
+        });
+    }
+
     public void GetUserInfoCallBack(string msg)
     {
         JObject jobect = JObject.Parse(msg);

+ 2 - 23
Assets/Scripts/UI/SceneChoose.cs

@@ -30,6 +30,7 @@ public class SceneChoose : BaseUI
 
     private List<SceneValue> m_SceneData;
 
+    public static int Sid = -1; 
     protected override void OnAwake()
     {
         base.OnAwake();
@@ -72,6 +73,7 @@ public class SceneChoose : BaseUI
     {
         GetComponent<RectTransform>().position = new Vector3(1000000,42.1f,0);
         this.m_CurrentData = m_CurrentData;
+        Sid = this.m_CurrentData.id;
         //根据场景数据,下载资源
         Debug.Log("选择的场景为:" + m_CurrentData.name);
 
@@ -121,29 +123,6 @@ public class SceneChoose : BaseUI
                 m_OkBtn.interactable = true;
             }
         });
-
-        if (!UserInfo.Instance.is20)
-        {
-            // StartCoroutine(LoadCRT());
-
-            HttpTool.Instance.Get("/user/emqx/authentication", (msg) =>
-            {
-                JObject data = JObject.Parse(msg);
-                Debug.Log("DGJ ===>  MQTT Callback  " + msg);
-                if (data["code"].ToString() == "200")
-                {
-                    //MQTTClinet  连接
-                    MQTTClient.Instance.SetUserName(data["data"]["auth"].ToString());
-                    MQTTClient.Instance.SetFront(data["data"]["topicPrefix"].ToString());
-                    MQTTClient.Instance.Connect();
-                }
-                else
-                {
-                    Debug.LogError("MQTT username  请求失败  " + data["code"].ToString());
-                }
-
-            });
-        }
         /*
         if (m_CurrentData != null)
         {