Browse Source

机房信息位置获取修改

DGJ 1 year ago
parent
commit
0dae47c56e

+ 1 - 1
Assets/Scripts/Managers/BladeServerManager.cs

@@ -326,7 +326,7 @@ public class BladeServerManager : MonoSingleton<BladeServerManager>
             {
                 row += 1;
             }
-
+            Debug.Log(row * MachineRoomManager.Instance.data.list + "   " + (row + 1) * MachineRoomManager.Instance.data.list);
             for (int i = row*MachineRoomManager.Instance.data.list; i < (row+1)*MachineRoomManager.Instance.data.list; i++)
             {
                 Debug.Log("DGJ  ===> " + listTagTracking[i].tagId);

+ 3 - 1
Assets/Scripts/Managers/MachineRoomManager.cs

@@ -240,6 +240,8 @@ public class MachineRoomManager : MonoSingleton<MachineRoomManager>
 #endif
     }
 
+
+
     private void SceneInitCallBack(string msg)
     {
         Debug.Log(msg);
@@ -362,7 +364,7 @@ public class MachineRoomManager : MonoSingleton<MachineRoomManager>
             obj.name =i.ToString();
             //   Debug.Log(obj.name + "  " + new Vector3(j * (data.cabinetW + data.intervalW), 0, i * data.intervalL));
             obj.transform.localPosition = new Vector3((i%data.list)*(data.cabinetW + data.intervalW), 0, (i/data.list) * data.intervalL);
-            obj.GetComponent<MachineObj>().Setting((i / data.line) % 2 == 0);
+            obj.GetComponent<MachineObj>().Setting((i / data.list) % 2 == 0);
             listObjes.Add(obj.GetComponent<MachineObj>());
             listObjes[i].deviceParameters = data.listEquipmentData[i];
             

+ 21 - 15
Assets/Scripts/Managers/WayFindingManager.cs

@@ -126,7 +126,9 @@ public class WayFindingManager : MonoSingleton<WayFindingManager>
             listPos.Add(pos1);
             listPos.Add(pos2);
             listPos.Add(new Vector3(serverItem.transform.localPosition.x, -1, serverItem.transform.localPosition.z));
+            Bezier.Instance.SetRoute(listPos);
             CreateRoute(listPos,serverItem,true);
+           
 
         }
         else
@@ -154,8 +156,9 @@ public class WayFindingManager : MonoSingleton<WayFindingManager>
                 listpos.Add(pos3);
                 listpos.Add(pos4);
                 listpos.Add(new Vector3(serverItem.transform.localPosition.x,-1, serverItem.transform.localPosition.z));
+                Bezier.Instance.SetRoute(listpos);
                 CreateRoute(listpos,serverItem,true);
-
+               
             }
             else
             {
@@ -180,8 +183,9 @@ public class WayFindingManager : MonoSingleton<WayFindingManager>
                 listpos.Add(pos3);
                 listpos.Add(pos4);
                 listpos.Add(new Vector3(serverItem.transform.localPosition.x, -1, serverItem.transform.localPosition.z));
+                Bezier.Instance.SetRoute(listpos);
                 CreateRoute(listpos, serverItem, true);
-
+             
             }
         }
     }
@@ -262,23 +266,25 @@ public class WayFindingManager : MonoSingleton<WayFindingManager>
 
     private void CreateRoute(List<Vector3> listPos, MachineObj machineObj, bool isdevice)
     {
-        for (int i = 0; i < listPos.Count - 1; i++)
-        {
-            GameObject route1 = GameObject.Instantiate(route, MachineRoomManager.Instance.transform);
-            route1.transform.localPosition = listPos[i];
-            lookPoint.localPosition = listPos[i + 1];
-            route1.transform.LookAt(lookPoint);
-            route1.SetActive(true);
-            listRoot.Add(route1.transform.GetChild(0).GetComponent<Route>());
-
-            listRoot[i].SetRoute(route1.transform.position, lookPoint.position, 0,lookPoint);
+        //for (int i = 0; i < listPos.Count - 1; i++)
+        //{
+        //    GameObject route1 = GameObject.Instantiate(route, MachineRoomManager.Instance.transform);
+        //    route1.transform.localPosition = listPos[i];
+        //    lookPoint.localPosition = listPos[i + 1];
+        //    route1.transform.LookAt(lookPoint);
+        //    route1.SetActive(true);
+        //    listRoot.Add(route1.transform.GetChild(0).GetComponent<Route>());
 
-            GameObject obj = new GameObject(i.ToString());
-            obj.transform.position = listPos[i];
-        }
+        //    listRoot[i].SetRoute(route1.transform.position, lookPoint.position, 0,lookPoint);
 
+        //    GameObject obj = new GameObject(i.ToString());
+        //    obj.transform.position = listPos[i];
+        //}
+     
         if (isdevice && machineObj)
         {
+            lookPoint.localPosition = listPos[listPos.Count - 1];
+
             GameObject devicedoorName = GameObject.Instantiate(deviceName, MachineRoomManager.Instance.transform);
             devicedoorName.transform.localPosition = listPos[listPos.Count - 2];
             devicedoorName.transform.LookAt(lookPoint);

+ 36 - 31
Assets/Scripts/Tool/Bezier.cs

@@ -4,7 +4,7 @@ using System.Collections;
 
 public class Bezier : MonoSingleton<Bezier>
 {
-    public Transform[] controlPoints;
+  //  public Transform[] controlPoints;
     public LineRenderer lineRenderer;
 
     private int layerOrder = 0;
@@ -33,18 +33,24 @@ public class Bezier : MonoSingleton<Bezier>
 
         // DrawCurve();
 
+    
+        StartCoroutine(SetOffset());        
+    }
+
+    public void SetRoute(List<Vector3> listPos)
+    {
         int index = 0;
+       
+        RouteClear();
+        lineRenderer.positionCount = (listPos.Count - 2) * _segmentNum + listPos.Count;
         Debug.Log(lineRenderer.positionCount);
-        lineRenderer.positionCount = (controlPoints.Length - 2) * _segmentNum + controlPoints.Length;
-        lineRenderer.SetPosition(index++, controlPoints[0].position);
-        for (int i = 1; i < controlPoints.Length-1; i++)
+        lineRenderer.SetPosition(index++, listPos[0]);
+        for (int i = 1; i < listPos.Count - 1; i++)
         {
 
-       
-
-            point.position = controlPoints[i].position;
-            point.LookAt(controlPoints[i-1].position);
-            point.Translate(0,0, rr, Space.Self);
+            point.position = listPos[i];
+            point.LookAt(listPos[i - 1]);
+            point.Translate(0, 0, rr, Space.Self);
             Vector3 pos1 = point.position;
             lineRenderer.SetPosition(index++, pos1);
 
@@ -54,39 +60,38 @@ public class Bezier : MonoSingleton<Bezier>
             //GameObject obj2 = new GameObject(i.ToString());
             //obj2.transform.position = controlPoints[i].position;
 
-            point.position = controlPoints[i].position;
-            point.LookAt(controlPoints[i+1].position);
-            point.Translate(0, 0, rr+0.05f, Space.Self);
+            point.position = listPos[i];
+            point.LookAt(listPos[i + 1]);
+            point.Translate(0, 0, rr + 0.05f, Space.Self);
             Vector3 pos2 = point.position;
 
             Debug.Log(pos1 + "  " + point.position + "  " + pos2);
 
-            List<Vector3> listPos = DrawCurve(pos1, controlPoints[i].position, pos2);
-            for (int j = 0; j < listPos.Count; j++)
+            List<Vector3> listLinePos = DrawCurve(pos1, listPos[i], pos2);
+            for (int j = 0; j < listLinePos.Count; j++)
             {
-                lineRenderer.SetPosition(index++, listPos[j]);
+                lineRenderer.SetPosition(index++, listLinePos[j]);
             }
 
         }
 
-        lineRenderer.SetPosition(index++, controlPoints[controlPoints.Length-1].position);
+        lineRenderer.SetPosition(index++, listPos[listPos.Count - 1]);
 
         float dis = 0;
-        for (int i = 0; i < lineRenderer.positionCount; i++)
+        for (int i = 0; i < lineRenderer.positionCount-1; i++)
         {
             dis += Vector3.Distance(lineRenderer.GetPosition(i), lineRenderer.GetPosition(i + 1));
         }
 
-        material.SetTextureScale("_MainTex", new Vector2(dis*4, 1f));
-        StartCoroutine(SetOffset());        
+        material.SetTextureScale("_MainTex", new Vector2(dis * 8, 1f));
+
     }
 
-    public void SetRoute()
+    public void RouteClear()
     {
-
+        lineRenderer.positionCount = 0;
     }
 
-
     private IEnumerator SetOffset()
     {
         while (true)
@@ -107,15 +112,15 @@ public class Bezier : MonoSingleton<Bezier>
 
     void DrawCurve()
     {
-        for (int i = 1; i <= _segmentNum; i++)
-        {
-            float t = i / (float)_segmentNum;
-            int nodeIndex = 0;
-            Vector3 pixel = CalculateCubicBezierPoint(t, controlPoints[nodeIndex].position,
-                controlPoints[nodeIndex + 1].position, controlPoints[nodeIndex + 2].position);
-            lineRenderer.positionCount = i;
-            lineRenderer.SetPosition(i - 1, pixel);
-        }
+        //for (int i = 1; i <= _segmentNum; i++)
+        //{
+        //    float t = i / (float)_segmentNum;
+        //    int nodeIndex = 0;
+        //    Vector3 pixel = CalculateCubicBezierPoint(t, controlPoints[nodeIndex].position,
+        //        controlPoints[nodeIndex + 1].position, controlPoints[nodeIndex + 2].position);
+        //    lineRenderer.positionCount = i;
+        //    lineRenderer.SetPosition(i - 1, pixel);
+        //}
 
     }
 

+ 9 - 0
Assets/Scripts/UICallManager.cs

@@ -386,6 +386,15 @@ public class UICallManager : MonoSingleton<UICallManager>,IController
         this.SendCommand(new ShowDeviceCommand(showDeviceTransform));
     }
 
+    /// <summary>
+    /// 获取ShowDevice位置
+    /// </summary>
+    public void GetDeviceTransform()
+    {
+        this.SendCommand(new ShowDeviceCommand(MachineRoomManager.Instance.startShowDevice));
+       
+    }
+
     /// <summary>
     ///  导航
     /// </summary>