Browse Source

修复bug

“hujiajun” 1 year ago
parent
commit
ab1c2181f7

+ 6 - 6
Assets/HotUpdate/CalMap.cs

@@ -29,16 +29,15 @@ 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,
+                    -(GameManager.Instance.MinMapSize.y- (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 (pos.x < 0 )
+                if (pos.x < 0)
                 {
                     pos.x = 0;
                 }
-                if(pos.x > GameManager.Instance.MinMapSize.x)
+                if (pos.x > GameManager.Instance.MinMapSize.x)
                 {
                     pos.x = GameManager.Instance.MinMapSize.x;
 
@@ -52,6 +51,7 @@ public class CalMap : MonoBehaviour
                     pos.y = -GameManager.Instance.MinMapSize.y;
 
                 }
+
                 m_Map.ShowPlayer(pos, rot);
             }
         }

+ 62 - 49
Assets/HotUpdate/GameManager.cs

@@ -18,6 +18,7 @@ using Unity.VisualScripting;
 using UnityEngine;
 using UnityEngine.UI;
 using XRTool.Util;
+using System.Linq;
 
 /*
  * 半自动交付/自动交付
@@ -764,9 +765,12 @@ public class GameManager : MonoSingleton<GameManager>
         m_SettingPanel.gameObject.SetActive(true);
         m_EditorPanel.Init();
         m_SettingPanel.Init();
-        if (RouteCtr.CurrentPoints.Count > 0)
+        if (RouteCtr.List_route[0]&&RouteCtr.List_route[0].GetComponent<LineRenderer>()&& RouteCtr.List_route[0].GetComponent<LineRenderer>().positionCount > 0)
         {
-            Player.MovePoints = RouteCtr.CurrentPoints;
+            yield return new WaitForSeconds(5f);
+            Vector3[] v3list = new Vector3[RouteCtr.List_route[0].GetComponent<LineRenderer>().positionCount];
+            RouteCtr.List_route[0].GetComponent<LineRenderer>().GetPositions(v3list);
+            Player.MovePoints = v3list.ToList();// RouteCtr.CurrentPoints;
             //判断选择那个虚拟导游
             //int id = ChooseIroBot();
 
@@ -774,8 +778,7 @@ public class GameManager : MonoSingleton<GameManager>
             //{
             //m_IroBot = Irobots[id - 1];
             m_IroBot.gameObject.SetActive(true);
-            m_IroBot.Points = RouteCtr.CurrentPoints;
-            yield return new WaitForSeconds(5f);
+            m_IroBot.Points = Player.MovePoints;
             //}
         }
         IsRuning = true;
@@ -1350,49 +1353,52 @@ public class GameManager : MonoSingleton<GameManager>
             Texture2D tex = new Texture2D(1, 1);
 
             OpenCVForUnity.CoreModule.Mat _mat = null;
+            tex.LoadImage((byte[])msg.Value);
+            tex.Apply();  //  Sprite sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), Vector2.one * 0.5f);
+            Sprite sprite = Sprite.Create(tex, new UnityEngine.Rect(0, 0, tex.width, tex.height), new Vector2(0.5f, 0.5f));
+            m_MinMap.Map.sprite = sprite;
+            //m_MinMap.Map.SetNativeSize();
+
+            float width = tex.width;
+            float height = tex.height;
+            if (width > height)
+            {
+                width = width / height;
+                height = 1;
+            }
+            else
+            {
+                height = height / width;
+                width = 1;
+            }
+
+            MinMapSize = new Vector2(width * 150, height * 150);
+            CalMapSize();
+            m_MinMap.Map.GetComponent<RectTransform>().sizeDelta = new Vector2(width * 150, height * 150);
 
+            //获取网页端
+            WebMapSize = new Vector2((float)tex.width, (float)tex.height);
+            if (SceneValue != null)
+            {
+                //  StartCreateScene(SceneValue);
+            }
+            Debug.Log("playerPos===>GetMinMapBack");
+            GetMinMapBack?.Invoke(true);
+            /*
             Loom.RunAsync(() =>
             {
                 Debug.Log("加載完成222222222222222222");
                 _mat = zoomByteByOpenCV((byte[])msg.Value);
+
                 Debug.Log("1111111");
                 Loom.QueueOnMainThread(() =>
                 {
 
                     Debug.Log("加載完成111111111111");
                     tex = TextureByMat(_mat);
-                    //  Sprite sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), Vector2.one * 0.5f);
-                    Sprite sprite = Sprite.Create(tex, new UnityEngine.Rect(0, 0, tex.width, tex.height), new Vector2(0.5f, 0.5f));
-                    m_MinMap.Map.sprite = sprite;
-                    //m_MinMap.Map.SetNativeSize();
-
-                    float width = tex.width;
-                    float height = tex.height;
-                    if (width > height)
-                    {
-                        width = width / height;
-                        height = 1;
-                    }
-                    else
-                    {
-                        height = height / width;
-                        width = 1;
-                    }
-
-                    MinMapSize = new Vector2(width * 150, height * 150);
-                    CalMapSize();
-                    m_MinMap.Map.GetComponent<RectTransform>().sizeDelta = new Vector2(width * 150, height * 150);
-
-                    //获取网页端
-                    WebMapSize = new Vector2((float)tex.width, (float)tex.height);
-                    if (SceneValue != null)
-                    {
-                        //  StartCreateScene(SceneValue);
-                    }
-                    Debug.Log("playerPos===>GetMinMapBack");
-                    GetMinMapBack?.Invoke(true);
+                  
                 });
-            });
+            });*/
 
 
 
@@ -1459,8 +1465,9 @@ public class GameManager : MonoSingleton<GameManager>
         {
             Debug.LogFormat("{0}{1}", spoit.name, " DGJ ===>  景点存在");
             SpoitPos trans = spoit.SpoitTransform[0];
-            
-            spoitPos = new Vector3((float)trans.pointRelativeX / WebMapSize.x * MapSize.x, -1f, MapSize.y - ((float)trans.pointRelativeY) / WebMapSize.y * MapSize.y);
+
+            Debug.Log("pointRelativeX_"+trans.pointRelativeX+"_"+ WebMapSize+"_"+ MapSize);
+            spoitPos = new Vector3((float)trans.pointRelativeX / WebMapSize.x * MapSize.x, -1f, (WebMapSize.y - (float)trans.pointRelativeY) / WebMapSize.y * MapSize.y);
             //创建水晶点
             var obj = Instantiate(CrystalItem, CrystalsParent);
             CommandSystem.Instance.Send(
@@ -1493,8 +1500,8 @@ public class GameManager : MonoSingleton<GameManager>
             //}
 
             //var tiggerpos = new Vector3((float)trans.areaRelativeX / WebMapSize.x * MapSize.x, -0.5f, -(float)trans.areaRelativeY / WebMapSize.y * MapSize.y);
-            var tiggerpos = new Vector3((float)(trans.areaRelativeX + trans.areaRelativeW / 2) / WebMapSize.x * MapSize.x, -0.5f, MapSize.y - (float)(trans.areaRelativeY + trans.areaRelativeH / 2) / WebMapSize.y * MapSize.y);
-            var tiggerRange = new Vector3((float)trans.areaRelativeW / WebMapSize.x * MapSize.x, 0.1f,(float)trans.areaRelativeH / WebMapSize.y * MapSize.y);
+            var tiggerpos = new Vector3((float)(trans.areaRelativeX + trans.areaRelativeW / 2) / WebMapSize.x * MapSize.x, -0.5f, (WebMapSize.y - (float)(trans.areaRelativeY + trans.areaRelativeH / 2)) / WebMapSize.y * MapSize.y);
+            var tiggerRange = new Vector3((float)trans.areaRelativeW / WebMapSize.x * MapSize.x, 0.1f, (float)trans.areaRelativeH / WebMapSize.y * MapSize.y);
             Debug.LogError($"名称:{spoit.name}+宽:{trans.areaRelativeW},长:{trans.areaRelativeH}");
             var triggerobj = Instantiate(ColliderItem, CollidersParent);
             triggerobj.name = spoit.name;
@@ -1527,9 +1534,6 @@ public class GameManager : MonoSingleton<GameManager>
         {*/
             spoitposDic.Add(spoit.id, new Vector3(spoitPos.x, wutiH, spoitPos.z));
             spoitObj.transform.localPosition = new Vector3(spoitPos.x, wutiH, spoitPos.z)+ spoit.spoitTf.nowPos;
-            Debug.Log("最新保存====》獲取的POS" + new Vector3(spoitPos.x, wutiH, spoitPos.z));
-            Debug.Log("最新保存====》獲取的偏移POS" + spoit.spoitTf.nowPos);
-            Debug.Log("最新保存====》獲取的物體Pos" + spoitObj.transform.localPosition);
             spoitObj.transform.localRotation = Quaternion.identity;
             spoitObj.transform.localEulerAngles = spoit.spoitTf.nowRot;
             spoitObj.transform.localScale = new Vector3(1, 1, 1);
@@ -1537,6 +1541,9 @@ public class GameManager : MonoSingleton<GameManager>
             {
                 spoitObj.transform.localScale = spoit.spoitTf.nowScale;
             }
+
+
+
             spoit.spoitTf.SetStartValue(spoitObj.transform.localPosition, spoitObj.transform.localEulerAngles, spoitObj.transform.localScale);
        /* }
         else
@@ -2179,15 +2186,21 @@ public class GameManager : MonoSingleton<GameManager>
         }
         else
         {
-            ListShowObjs[SpoitIndex].gameObject.SetActive(false);
+            for (int i = 0; i < ListColliderBoxs.Count; i++)
+            {
+                if (other.name == ListColliderBoxs[i].name)
+                {
+                    ListShowObjs[i].gameObject.SetActive(false);
 
-            MQTTClient.Instance.sendActiveSp(ListShowObjs[SpoitIndex].name, false);
+                    MQTTClient.Instance.sendActiveSp(ListShowObjs[i].name, false);
 
-            if (isShowLoacalShowObjs)
-                ListLocalShowObjs[SpoitIndex].gameObject.SetActive(false);
-            ListCrystals[SpoitIndex].gameObject.SetActive(true);
-            m_EditorPanel.ClosePanel();
-            SpoitIndex = -1;
+                    if (isShowLoacalShowObjs)
+                        ListLocalShowObjs[i].gameObject.SetActive(false);
+                    ListCrystals[i].gameObject.SetActive(true);
+                    m_EditorPanel.ClosePanel();
+                    SpoitIndex = -1;
+                }
+            }
         }
         m_SettingPanel.setMsg(null);
     }

+ 21 - 17
Assets/HotUpdate/GetAllBounds.cs

@@ -14,7 +14,7 @@ public class GetAllBounds
         Bounds bounds = new Bounds(Vector3.zero, Vector3.zero);
         if (renderers.Length < 1)
             return bounds;
-        bounds = new Bounds(renderers[0].transform.position, Vector3.zero);
+        bounds = new Bounds(renderers[0].bounds.center, Vector3.zero);
         float maxX = renderers[0].bounds.center.x;
         float minX = renderers[0].bounds.center.x;
         float maxY = renderers[0].bounds.center.y;
@@ -23,22 +23,26 @@ public class GetAllBounds
         float minZ = renderers[0].bounds.center.z;
         foreach (Renderer renderer in renderers)
         {
-            bounds.Encapsulate(renderer.bounds);
-
-            if (maxX < renderer.bounds.center.x)
-                maxX = renderer.bounds.center.x;
-            if (minX > renderer.bounds.center.x)
-                minX = renderer.bounds.center.x;
-
-            if (maxY < renderer.bounds.center.y)
-                maxY = renderer.bounds.center.y;
-            if (minY > renderer.bounds.center.y)
-                minY = renderer.bounds.center.y;
-
-            if (maxZ < renderer.bounds.center.z)
-                maxZ = renderer.bounds.center.z;
-            if (minZ > renderer.bounds.center.z)
-                minZ = renderer.bounds.center.z;
+            if(renderer.enabled)
+            {
+                bounds.Encapsulate(renderer.bounds);
+
+                if (maxX < renderer.bounds.center.x)
+                    maxX = renderer.bounds.center.x;
+                if (minX > renderer.bounds.center.x)
+                    minX = renderer.bounds.center.x;
+
+                if (maxY < renderer.bounds.center.y)
+                    maxY = renderer.bounds.center.y;
+                if (minY > renderer.bounds.center.y)
+                    minY = renderer.bounds.center.y;
+
+                if (maxZ < renderer.bounds.center.z)
+                    maxZ = renderer.bounds.center.z;
+                if (minZ > renderer.bounds.center.z)
+                    minZ = renderer.bounds.center.z;
+
+            }
         }
         bounds.center = new Vector3(maxX - (maxX - minX) / 2.0f, maxY - (maxY - minY) / 2.0f, maxZ - (maxZ - minZ) / 2.0f);
         return bounds;

+ 19 - 21
Assets/HotUpdate/IrobotMove.cs

@@ -1,6 +1,7 @@
 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
+using DG.Tweening;
 
 public class IrobotMove : MonoBehaviour
 {
@@ -29,7 +30,7 @@ public class IrobotMove : MonoBehaviour
         m_Animator = GetComponent<Animator>();
         if (Points.Count > 0)
         {
-            transform.localPosition = Points[0];
+            transform.position = Points[0];
 
             transform.LookAt(NRCameraRig.position);
             //transform.LookAt(API_GSXR_Slam.GSXR_Get_Head().position);
@@ -37,36 +38,33 @@ public class IrobotMove : MonoBehaviour
             transform.localEulerAngles = new Vector3(0, transform.localEulerAngles.y, 0);
 
             m_TargetPos = Points[1];
-            Targrt.localPosition = m_TargetPos;
+            Targrt.position = m_TargetPos;
             m_TargetIndex = 1;
 
             StartCoroutine(PlayAni());
         }
     }
 
-    private void LateUpdate()
+    private void WalkGoto()
     {
-        if (m_IsWalk)
-        {
-            transform.Translate(Vector3.forward * Time.deltaTime * Speed, Space.Self);
+        transform.DOMove(Targrt.position, Vector3.Distance(transform.position, Targrt.position)*0.5f).SetEase(Ease.Linear).OnComplete(()=> {
 
-            if (Vector3.Distance(transform.localPosition, Targrt.localPosition) < 0.01f)
+            m_TargetIndex++;
+            if (m_TargetIndex < Points.Count)
             {
-                m_TargetIndex++;
-                if (m_TargetIndex < Points.Count)
-                {
-                    m_TargetPos = Points[m_TargetIndex];
-                    Targrt.localPosition = m_TargetPos;
-                    transform.LookAt(Targrt.position);
-                }
-                else
-                {
-                    gameObject.SetActive(false);
-                }
+                m_TargetPos = Points[m_TargetIndex];
+                Targrt.position = m_TargetPos;
+                transform.LookAt(Targrt.position);
+                WalkGoto();
             }
-        }
-    }
+            else
+            {
+                gameObject.SetActive(false);
+            }
+
 
+        });
+    }
     IEnumerator PlayAni()
     {
         m_Animator.SetBool("Waving", true);
@@ -75,7 +73,7 @@ public class IrobotMove : MonoBehaviour
         yield return new WaitForSeconds(2f);
         m_Animator.SetBool("Backaway_Walk", true);
         transform.LookAt(Targrt.position);
-        m_IsWalk = true;
+        WalkGoto();
         yield return new WaitForSeconds(10f);
         gameObject.SetActive(false);
     }

+ 33 - 0
Assets/HotUpdate/LineEffect.cs

@@ -0,0 +1,33 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class LineEffect : MonoBehaviour
+{
+    public LineRenderer line;
+    private Vector2 Interval = new Vector2(0.05f, 0);
+    private Vector2 offset;
+    // Start is called before the first frame update
+    void Start()
+    {
+        line = this.gameObject.GetComponent<LineRenderer>();
+        StartCoroutine(onDGTween());
+    }
+    IEnumerator onDGTween()
+    {
+        while (true)
+        {
+            yield return new WaitForSeconds(0.04f);
+            if (line != null)
+            {
+                offset -= Interval;
+                line.materials[0].SetTextureOffset("_MainTex", offset);
+                if (offset.x <= -1)
+                {
+                    offset = Vector2.zero;
+                }
+
+            }
+        }
+    }
+}

+ 11 - 0
Assets/HotUpdate/LineEffect.cs.meta

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

+ 4 - 1
Assets/HotUpdate/MaterialBtnItem.cs

@@ -107,6 +107,7 @@ public class MaterialBtnItem : MonoBehaviour, EventObserver
         m_MatValue = value;
         m_ObjectValue = objValue;
         MaterialObj = objValue.Object;
+        if(m_Text)
         m_Text.text = string.IsNullOrWhiteSpace(value.name) ? MaterialObj.name : value.name;
         //MaterialObj.transform.localPosition = m_ObjectValue.nowPos;
         //MaterialObj.transform.localEulerAngles = m_ObjectValue.nowRot;
@@ -121,7 +122,8 @@ public class MaterialBtnItem : MonoBehaviour, EventObserver
 
         m_ObjectValue = objValue;
         MaterialObj = objValue.Object;
-        m_Text.text = "BoxCollider";
+        if (m_Text)
+            m_Text.text = "BoxCollider";
         MaterialObj.transform.localPosition = m_ObjectValue.nowPos;
         MaterialObj.transform.localEulerAngles = m_ObjectValue.nowRot;
         MaterialObj.transform.localScale = m_ObjectValue.nowScale;
@@ -156,6 +158,7 @@ public class MaterialBtnItem : MonoBehaviour, EventObserver
 
     public void ClearData()
     {
+        if(m_Text)
         m_Text.text = null;
         m_Image.sprite = null;
         MaterialObj = null;

+ 3 - 1
Assets/HotUpdate/MinMap.cs

@@ -60,10 +60,12 @@ public class MinMap : MonoBehaviour
         list_route[index].gameObject.SetActive(isshow);
     }
 
+    public Material mats;
     public void SettingMapRoute(List<Vector3> listMapRoutePos, string linename)
     {
         var line = Instantiate(LineItem, LineParent);
         line.name = linename;
+        line.GetComponent<LineRenderer>().material = mats;
         line.transform.localPosition = Vector3.zero;
         line.startWidth = 3;
         line.endWidth = 3;
@@ -73,7 +75,7 @@ public class MinMap : MonoBehaviour
         {
             line.SetPosition(i, listMapRoutePos[i]);
         }
-
+        line.gameObject.AddComponent<LineEffect>();
         list_route.Add(line);
     }
 }

BIN
Assets/HotUpdate/ProceduralUIImage/Demo/Icons/arrow_right 1.png


+ 147 - 0
Assets/HotUpdate/ProceduralUIImage/Demo/Icons/arrow_right 1.png.meta

@@ -0,0 +1,147 @@
+fileFormatVersion: 2
+guid: 7fba6df229cc1426aa0b651659f8b5f8
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 12
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 1
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  vTOnly: 0
+  ignoreMasterTextureLimit: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: -1
+  maxTextureSize: 256
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 16
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 1
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 0
+  textureShape: 1
+  singleChannelComponent: 0
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 1
+  cookieLightType: 1
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 256
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 256
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Server
+    maxTextureSize: 256
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Android
+    maxTextureSize: 256
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: iPhone
+    maxTextureSize: 256
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+    nameFileIdTable: {}
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/HotUpdate/ProceduralUIImage/Demo/Icons/route2_rotate_副本.png


+ 147 - 0
Assets/HotUpdate/ProceduralUIImage/Demo/Icons/route2_rotate_副本.png.meta

@@ -0,0 +1,147 @@
+fileFormatVersion: 2
+guid: e299ae933dbae4fa293f7f428958a517
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 12
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 1
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  vTOnly: 0
+  ignoreMasterTextureLimit: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 0
+    wrapV: 0
+    wrapW: 0
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 0
+  spriteTessellationDetail: -1
+  textureType: 0
+  textureShape: 1
+  singleChannelComponent: 0
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  cookieLightType: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Server
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Android
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: iPhone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+    nameFileIdTable: {}
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 121 - 6
Assets/HotUpdate/RouteCtr.cs

@@ -59,6 +59,8 @@ public class RouteCtr : MonoBehaviour
         }
     }
 
+    public Dictionary<string, List<Vector3>> lineoldlist = new Dictionary<string, List<Vector3>>();
+    public Material[] mats;
     /// <summary>
     /// 设置路径
     /// </summary>
@@ -68,28 +70,141 @@ public class RouteCtr : MonoBehaviour
     {
         points = new List<Vector3>();
         GameObject routes = new GameObject(data.name);
+
         routes.transform.parent = transform;
         routes.transform.localPosition = Vector3.zero;
         routes.transform.localEulerAngles = Vector3.zero;
+        LineRenderer linerender = routes.AddComponent<LineRenderer>();
+        routes.AddComponent<LineEffect>();
+        linerender.positionCount = data.lines.Count*2;
+        linerender.startWidth = 0.05f;// (,0.35f);
+        linerender.endWidth = 0.05f;// (,0.35f);
+        linerender.material = mats[routerMod];
+        if(!lineoldlist.ContainsKey(data.name))
+        {
+            lineoldlist.Add(data.name, new List<Vector3>());
+        }
+        else
+        {
+
+            lineoldlist[data.name] =new List<Vector3>();
+        }
         for (int j = 0; j < data.lines.Count; j++)
         {
+
+
             var line = data.lines[j];
+            /*
             GameObject route = GameObject.Instantiate(RouteItem, routes.transform);
-            route.name = line._index.ToString();
-            Vector3 startPos = new Vector3((float)line.x1 / GameManager.Instance.WebMapSize.x * GameManager.Instance.MapSize.x, 0, -(float)line.y1 / GameManager.Instance.WebMapSize.y * GameManager.Instance.MapSize.y);
-            Vector3 endPos = new Vector3((float)line.x2 / GameManager.Instance.WebMapSize.x * GameManager.Instance.MapSize.x, 0, -(float)line.y2 / GameManager.Instance.WebMapSize.y * GameManager.Instance.MapSize.y);
-            route.GetComponent<Route>().SetRoute(endPos, startPos, routerMod);
+            route.name = line._index.ToString();*/
+            Vector3 startPos = new Vector3((float)line.x1 / GameManager.Instance.WebMapSize.x * GameManager.Instance.MapSize.x, 0, (GameManager.Instance.WebMapSize.y - (float)line.y1) / GameManager.Instance.WebMapSize.y * GameManager.Instance.MapSize.y);
+            lineoldlist[data.name].Add(startPos);
+            linerender.SetPosition(j*2, transform.TransformPoint(startPos));
+
+            Vector3 endPos = new Vector3((float)line.x2 / GameManager.Instance.WebMapSize.x * GameManager.Instance.MapSize.x, 0, (GameManager.Instance.WebMapSize.y - (float)line.y2) / GameManager.Instance.WebMapSize.y * GameManager.Instance.MapSize.y);
+
+            /* route.GetComponent<Route>().SetRoute(endPos, startPos, routerMod);
             route.SetActive(true);
             points.Add(startPos);
             if (j == data.lines.Count - 1)
             {
                 points.Add(endPos);
-            }
+            }*/
+            lineoldlist[data.name].Add(endPos);
+            linerender.SetPosition(j*2+1, transform.TransformPoint(endPos));
+
         }
         list_route.Add(routes);
-        routes.SetActive(false);
+        //routes.SetActive(false);
     }
+    float MaxL;
+    private void Update()
+    {
+        for (int i = 0; i < list_route.Count; i++)
+        {
+            if(lineoldlist[list_route[i].name]!=null)
+            {
+                LineRenderer lr = list_route[i].GetComponent<LineRenderer>();
+                /*
+                if(lineoldlist[list_route[i].name].Count>=3)
+                {
+
+                    List<Vector3> v3 = new List<Vector3>();
+                    for (int j = 2; j < lineoldlist[list_route[i].name].Count; j++)
+                    {
+                        v3.Add(lineoldlist[list_route[i].name][j - 2]);
+                        v3.AddRange( DrawCurve(GetPos(lineoldlist[list_route[i].name][j - 1], lineoldlist[list_route[i].name][j - 2]), lineoldlist[list_route[i].name][j - 1], GetPos(lineoldlist[list_route[i].name][j - 1], lineoldlist[list_route[i].name][i])));
+
+                        v3.Add(lineoldlist[list_route[i].name][j]);
+                    }
+                    lr.positionCount = v3.Count;
+                    for (int z = 0; z < v3.Count; z++)
+                    {
+                        lr.SetPosition(z, transform.TransformPoint(v3[z]));
+                    }
+                    MaxL = 0;
+                    for (int m = 1; m < v3.Count; m++)
+                    {
+                        MaxL += Vector3.Distance(v3[m - 1], v3[m]);
+                    }
+                    lr.materials[0].SetTextureScale("_MainTex", new Vector2(MaxL * 10 , 1));
+                }
+                else
+                {*/
 
+                    for (int j = 0; j < lineoldlist[list_route[i].name].Count; j++)
+                    {
+                        lr.SetPosition(j, transform.TransformPoint(lineoldlist[list_route[i].name][j]));
+                    }
+                    MaxL = 0;
+                    for (int m = 1; m < lineoldlist[list_route[i].name].Count; m++)
+                    {
+                        MaxL += Vector3.Distance(lineoldlist[list_route[i].name][m - 1], lineoldlist[list_route[i].name][m]);
+                    }
+                    lr.materials[0].SetTextureScale("_MainTex", new Vector2(MaxL * 10, 1));
+                //}
+            }
+        }
+    }
+    public Vector3 GetPos(Vector3 post1, Vector3 post2)
+    {
+        Vector3 pos = Vector3.zero;
+        float dis = Vector3.Distance(post1, post2);//计算距离
+        Vector3 vector = (post2 - post1).normalized; //向量单位化
+        float rand = 0.2f;//随机距离
+        pos = vector * rand; //得到新坐标
+        pos += post1; //使新的坐标点在 post1与 post2之间
+        return pos;
+    }
+    private int _segmentNum = 3;
+
+    List<Vector3> DrawCurve(Vector3 pos1, Vector3 pos2, Vector3 pos3)
+    {
+        List<Vector3> listPos = new List<Vector3>();
+        for (int i = 1; i <= _segmentNum; i++)
+        {
+            float t = i / (float)_segmentNum;
+            int nodeIndex = 0;
+            Vector3 pixel = CalculateCubicBezierPoint(t, pos1,
+                pos2, pos3);
+
+            listPos.Add(pixel);
+
+        }
+        return listPos;
+    }
+    Vector3 CalculateCubicBezierPoint(float t, Vector3 p0, Vector3 p1, Vector3 p2)
+    {
+        float u = 1 - t;
+        float tt = t * t;
+        float uu = u * u;
+
+        Vector3 p = uu * p0;
+        p += 2 * u * t * p1;
+        p += tt * p2;
+
+        return p;
+    }
     /// <summary>
     /// 选择路线
     /// </summary>

+ 10 - 11
Assets/HotUpdate/SettingPanel.cs

@@ -167,33 +167,31 @@ public class SettingPanel : AbstractController
     public void Init()
     {
         CreateLines();
-        MinMap.isOn = true;
-        m_MinMap.gameObject.SetActive(true);
-        LuJIng.isOn = true;
+      //  MinMap.isOn = true;
+      //  m_MinMap.gameObject.SetActive(true);
 
-        if (Lines.Count > 0)
-        {
-            Lines[0].isOn = true;
-        }
         gameObject.SetActive(false);
     }
 
     private void OnMinMapValueChange(bool ison)
     {
-        //Debug.Log(data);
+        Debug.Log("OnMinMapValueChange===>"+ison);
         JsonData data = new JsonData();
 
         data["minMap"] = ison?1:0;
         HttpTool.Instance.Post("/user/settings", data.ToJson(), (string str)=> { });
-        m_MinMap.gameObject.SetActive(ison);
+        TimerMgr.Instance.CreateTimer(()=> { m_MinMap.gameObject.SetActive(ison); },0.3f,3);
+        
     }
 
     private void OnLuJIngValueChange(bool ison)
     {
         m_RouteCtr.gameObject.SetActive(ison);
-        for (int i = 0; i < Lines.Count; i++)
+
+        for (int i = 0; i < m_MinMap.list_route.Count; i++)
         {
-            Lines[i].interactable = ison;
+
+            m_MinMap.list_route[i].gameObject.SetActive(ison);
         }
     }
 
@@ -210,6 +208,7 @@ public class SettingPanel : AbstractController
             obj.gameObject.SetActive(true);
             Lines.Add(obj);
         }
+
     }
 
     private void OnCLickToggle(int index, bool ison)

+ 104 - 50
Assets/HotUpdate/TemplateModel.cs

@@ -34,6 +34,8 @@ public class TemplateModel : BaseTemPlate
                 m_ModelObj.GetComponent<Animation>().Play(_animations[0].name, PlayMode.StopAll);
             }
         }
+        if(this.gameObject.GetComponent<AudioSource>())
+        this.gameObject.GetComponent<AudioSource>().Play();
     }
 
     private IEnumerator LoadModel()
@@ -324,12 +326,11 @@ public class TemplateModel : BaseTemPlate
         using (ZipArchive archive = ZipFile.OpenRead(zipFilePath))
         {
                 byte[] ghbbytes = null;
-                byte[] csbytes = null;
                 Debug.Log("ExtractZipFile===>2");
                 foreach (ZipArchiveEntry entry in archive.Entries)
                 {
-                Debug.Log("ExtractZipFile==FullName=>2" + entry.FullName);
-                if (entry.FullName.Contains(".ghb") || !entry.FullName.Contains(".")|| entry.FullName.Contains(".bytes"))
+                    Debug.Log("ExtractZipFile==FullName=>2" + entry.FullName);
+                    if (entry.FullName.Contains(".ghb") || !entry.FullName.Contains("."))
                     {
                         isAB = true;
                         if (entry.Name != "")
@@ -341,27 +342,37 @@ public class TemplateModel : BaseTemPlate
                             {
                                 ghbbytes = bytes;
                             }
-                            else
-                            {
-                                csbytes = bytes;
-                            }
+                           
                         }
 
                     }
+                    else if(entry.FullName.Contains(".mp3"))
+                    {
+
+                        if (entry.Name != ""&&File.Exists(Application.persistentDataPath + "/" + entry.FullName))
+                        {
+                            entry.ExtractToFile(Application.persistentDataPath + "/" + entry.FullName, true);
+                            FileInfo finfo = new FileInfo(Application.persistentDataPath + "/" + entry.FullName);
+                            byte[] bytes = readbytes(finfo.OpenRead());
+                            float[] fs = bytesToFloat(bytes);
+                            AudioClip clip = AudioClip.Create(entry.FullName, fs.Length, 1, 16000, false);
+                            clip.SetData(fs, 0);
+                            if(!this.gameObject.GetComponent<AudioSource>())
+                            {
+                                this.gameObject.AddComponent<AudioSource>();
+                            }
+                            this.gameObject.GetComponent<AudioSource>().clip = clip;
+                            this.gameObject.GetComponent<AudioSource>().Play();
+                        }
+                        return true;
+                }
                 }
 
                 if(isAB)
                 {
                     Debug.Log("ExtractZipFile===>3");
-                    if (csbytes != null)
-                    {
-                        Debug.Log("ExtractZipFile===>4");
-                        Assembly.Load(csbytes);
-                    }
                     if (ghbbytes!=null)
                     {
-
-
                         Debug.Log("ExtractZipFile===>5");
                         AssetBundle ab = AssetBundle.LoadFromMemory(ghbbytes);
                         var prefab = ab.LoadAsset<GameObject>(ab.LoadAllAssets<GameObject>()[0].name);
@@ -380,6 +391,29 @@ public class TemplateModel : BaseTemPlate
             return isAB;
         }
     }
+
+    public static float[] bytesToFloat(byte[] byteArray)//byte[]数组转化为AudioClip可读取的float[]类型
+    {
+        float[] sounddata = new float[byteArray.Length / 2];
+        for (int i = 0; i < sounddata.Length; i++)
+        {
+            sounddata[i] = bytesToFloat(byteArray[i * 2], byteArray[i * 2 + 1]);
+        }
+        return sounddata;
+    }
+
+    static float bytesToFloat(byte firstByte, byte secondByte)
+    {
+        // convert two bytes to one short (little endian)
+        //小端和大端顺序要调整
+        short s;
+        if (BitConverter.IsLittleEndian)
+            s = (short)((secondByte << 8) | firstByte);
+        else
+            s = (short)((firstByte << 8) | secondByte);
+        // convert to range from -1 to (just below) 1
+        return s / 32768.0F;
+    }
     public byte[] readbytes(Stream stream)
     {
 
@@ -393,11 +427,14 @@ public class TemplateModel : BaseTemPlate
     }
     public void TriLibModel()
     {
-
+        if(m_ModelObj)
+        {
+            return;
+        }
 
         Debug.Log("模型加载完成TriLibModel" + Data.localLoadPath);
 
-        if (false)//ExtractZipFile(Data.localLoadPath)
+        if (ExtractZipFile(Data.localLoadPath))//ExtractZipFile(Data.localLoadPath)
         {
 
         }
@@ -405,43 +442,60 @@ public class TemplateModel : BaseTemPlate
         {
 
             Debug.Log("模型加载完成TriLibModel" + Data.localLoadPath);
-            TriLibModelLoad.Load(Data.localLoadPath, (AssetLoaderContext ac) => {
-                Debug.Log("模型加载完成");
-            }, (AssetLoaderContext ac) => {
-                Debug.Log("载材质加完成");
-                Bounds bounds = GetAllBounds.GetRendererBounds(ac.RootGameObject);
-                GameObject obj = new GameObject("Test");
-                obj.transform.position = bounds.center;
-                obj.transform.SetParent(ac.RootGameObject.transform);
-                float bizhi = 0.4f / bounds.size.x;
-                ac.RootGameObject.transform.localScale = Vector3.one * bizhi;
-                ac.RootGameObject.transform.SetParent(this.transform);
-                ac.RootGameObject.transform.localPosition = Vector3.zero - obj.transform.position ;
-                ac.RootGameObject.SetActive(true);
-
-                //  ac.RootGameObject.transform.position = Camera.main.transform.forward;
-                m_ModelObj = Instantiate(ac.RootGameObject, transform);
-                ManipulationHandler manipulation = gameObject.AddComponent<ManipulationHandler>();
-                manipulation.enabled = false;
-                BoundingBox boundingBox = gameObject.AddComponent<BoundingBox>();
-                boundingBox.enabled = false;
-                ac.RootGameObject.SetActive(false);
-
-                if (m_ModelObj && m_ModelObj.GetComponent<Animation>())
-                {
-                    Debug.Log("Animation===>1" + m_ModelObj.name);
 
-                    Animation _animation = m_ModelObj.GetComponent<Animation>();
-                    List<AnimationClip> _animations = _animation.GetAllAnimationClips();
-                    m_ModelObj.GetComponent<Animation>().Play(_animations[0].name, PlayMode.StopAll);
-                }
-            }, (AssetLoaderContext ac, float f) => {
+            try
+            {
 
-                Debug.Log("加载中==》" + f);
-            }, (IContextualizedError error) => {
+                TriLibModelLoad.Load(Data.localLoadPath, (AssetLoaderContext ac) => {
+                    Debug.Log("模型加载完成");
+                }, (AssetLoaderContext ac) => {
+                    Debug.Log("载材质加完成");
+                    Bounds bounds = GetAllBounds.GetRendererBounds(ac.RootGameObject);
+                    GameObject obj = new GameObject("Test");
+                    obj.transform.position = bounds.center;
+                    obj.transform.SetParent(ac.RootGameObject.transform);
+                    float bizhi = 0.4f / bounds.size.x;
+                    ac.RootGameObject.transform.localScale = Vector3.one * bizhi;
+                    ac.RootGameObject.transform.SetParent(this.transform.parent);
+                    Vector3 v3local = (Vector3.zero - obj.transform.position) ;
+                    ac.RootGameObject.transform.SetParent(this.transform);
+                    ac.RootGameObject.transform.localPosition = v3local;
+                    ac.RootGameObject.transform.localScale = ac.RootGameObject.transform.localScale * this.transform.localScale.x; 
+                    ac.RootGameObject.transform.localEulerAngles = Vector3.zero;
+                    ac.RootGameObject.SetActive(true);
+
+                    //  ac.RootGameObject.transform.position = Camera.main.transform.forward;
+                    m_ModelObj = Instantiate(ac.RootGameObject, transform);
+                    ManipulationHandler manipulation = gameObject.AddComponent<ManipulationHandler>();
+                    manipulation.enabled = false;
+                    BoundingBox boundingBox = gameObject.AddComponent<BoundingBox>();
+                    boundingBox.enabled = false;
+                    ac.RootGameObject.SetActive(false);
+
+                    if (m_ModelObj && m_ModelObj.GetComponent<Animation>())
+                    {
+                        Debug.Log("Animation===>1" + m_ModelObj.name);
+
+                        Animation _animation = m_ModelObj.GetComponent<Animation>();
+                        List<AnimationClip> _animations = _animation.GetAllAnimationClips();
+                        m_ModelObj.GetComponent<Animation>().Play(_animations[0].name, PlayMode.StopAll);
+                    }
+                    if (this.gameObject.GetComponent<BoxCollider>())
+                    {
+                        this.gameObject.GetComponent<BoxCollider>().size = Vector3.one * 0.4f;
+                    }
+                }, (AssetLoaderContext ac, float f) => {
 
-                Debug.Log("加载失败" + error);
-            });
+                    Debug.Log("加载中==》" + f);
+                }, (IContextualizedError error) => {
+
+                    Debug.Log("加载失败" + error);
+                });
+            }
+            catch
+            {
+                Debug.Log("加载失败" + Data.localLoadPath);
+            }
         }
     }
 

+ 4 - 0
Assets/HybridCLRGenerate/link.xml

@@ -5,7 +5,10 @@
   </assembly>
   <assembly fullname="DOTween">
     <type fullname="DG.Tweening.AxisConstraint" preserve="all" />
+    <type fullname="DG.Tweening.Ease" preserve="all" />
     <type fullname="DG.Tweening.ShortcutExtensions" preserve="all" />
+    <type fullname="DG.Tweening.TweenCallback" preserve="all" />
+    <type fullname="DG.Tweening.TweenSettingsExtensions" preserve="all" />
     <type fullname="DG.Tweening.Tweener" preserve="all" />
   </assembly>
   <assembly fullname="LitJson">
@@ -454,6 +457,7 @@
     <type fullname="System.Attribute" preserve="all" />
     <type fullname="System.AttributeTargets" preserve="all" />
     <type fullname="System.AttributeUsageAttribute" preserve="all" />
+    <type fullname="System.BitConverter" preserve="all" />
     <type fullname="System.Boolean" preserve="all" />
     <type fullname="System.Byte" preserve="all" />
     <type fullname="System.Char" preserve="all" />

+ 1 - 1
Assets/LocalAsset/LocalAsset.prefab.meta

@@ -3,5 +3,5 @@ guid: 4a3da7bb0173eb44db488cafe5da8c60
 PrefabImporter:
   externalObjects: {}
   userData: 
-  assetBundleName: localasset
+  assetBundleName: 
   assetBundleVariant: 

+ 38 - 23
Assets/MRNavigatorPro.unity

@@ -205,41 +205,56 @@ PrefabInstance:
       propertyPath: m_LocalEulerAnglesHint.z
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 4002528868881340807, guid: 9aa3328b080774e6a968fc5910820dbf,
-        type: 3}
-      propertyPath: m_IsActive
-      value: 0
-      objectReference: {fileID: 0}
     - target: {fileID: 4002528869004902571, guid: 9aa3328b080774e6a968fc5910820dbf,
         type: 3}
       propertyPath: m_AnchorMax.y
-      value: 1
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 4002528869004902571, guid: 9aa3328b080774e6a968fc5910820dbf,
         type: 3}
       propertyPath: m_AnchorMin.y
-      value: 1
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 4002528869004902571, guid: 9aa3328b080774e6a968fc5910820dbf,
         type: 3}
       propertyPath: m_SizeDelta.x
-      value: 188
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 4002528869004902571, guid: 9aa3328b080774e6a968fc5910820dbf,
         type: 3}
       propertyPath: m_SizeDelta.y
-      value: 61
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 4002528869004902571, guid: 9aa3328b080774e6a968fc5910820dbf,
         type: 3}
       propertyPath: m_AnchoredPosition.x
-      value: 100
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 4002528869004902571, guid: 9aa3328b080774e6a968fc5910820dbf,
         type: 3}
       propertyPath: m_AnchoredPosition.y
-      value: -101.5
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4002528869077908339, guid: 9aa3328b080774e6a968fc5910820dbf,
+        type: 3}
+      propertyPath: mats.Array.size
+      value: 3
       objectReference: {fileID: 0}
+    - target: {fileID: 4002528869077908339, guid: 9aa3328b080774e6a968fc5910820dbf,
+        type: 3}
+      propertyPath: mats.Array.data[0]
+      value: 
+      objectReference: {fileID: 2100000, guid: 0f8ae0187a5a6c04eb7606fe00b5e5d2, type: 2}
+    - target: {fileID: 4002528869077908339, guid: 9aa3328b080774e6a968fc5910820dbf,
+        type: 3}
+      propertyPath: mats.Array.data[1]
+      value: 
+      objectReference: {fileID: 2100000, guid: 3a5a2e1c7de626148bc11b260327baca, type: 2}
+    - target: {fileID: 4002528869077908339, guid: 9aa3328b080774e6a968fc5910820dbf,
+        type: 3}
+      propertyPath: mats.Array.data[2]
+      value: 
+      objectReference: {fileID: 2100000, guid: c48bcd49845c6eb4fb04b33c70ff5e41, type: 2}
     - target: {fileID: 4002528869314084846, guid: 9aa3328b080774e6a968fc5910820dbf,
         type: 3}
       propertyPath: m_SizeDelta.y
@@ -248,32 +263,32 @@ PrefabInstance:
     - target: {fileID: 4002528869692624363, guid: 9aa3328b080774e6a968fc5910820dbf,
         type: 3}
       propertyPath: m_AnchorMax.y
-      value: 1
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 4002528869692624363, guid: 9aa3328b080774e6a968fc5910820dbf,
         type: 3}
       propertyPath: m_AnchorMin.y
-      value: 1
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 4002528869692624363, guid: 9aa3328b080774e6a968fc5910820dbf,
         type: 3}
       propertyPath: m_SizeDelta.x
-      value: 188
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 4002528869692624363, guid: 9aa3328b080774e6a968fc5910820dbf,
         type: 3}
       propertyPath: m_SizeDelta.y
-      value: 61
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 4002528869692624363, guid: 9aa3328b080774e6a968fc5910820dbf,
         type: 3}
       propertyPath: m_AnchoredPosition.x
-      value: 100
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 4002528869692624363, guid: 9aa3328b080774e6a968fc5910820dbf,
         type: 3}
       propertyPath: m_AnchoredPosition.y
-      value: -35.5
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 4002528869717850668, guid: 9aa3328b080774e6a968fc5910820dbf,
         type: 3}
@@ -283,32 +298,32 @@ PrefabInstance:
     - target: {fileID: 4002528869793121930, guid: 9aa3328b080774e6a968fc5910820dbf,
         type: 3}
       propertyPath: m_AnchorMax.y
-      value: 1
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 4002528869793121930, guid: 9aa3328b080774e6a968fc5910820dbf,
         type: 3}
       propertyPath: m_AnchorMin.y
-      value: 1
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 4002528869793121930, guid: 9aa3328b080774e6a968fc5910820dbf,
         type: 3}
       propertyPath: m_SizeDelta.x
-      value: 188
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 4002528869793121930, guid: 9aa3328b080774e6a968fc5910820dbf,
         type: 3}
       propertyPath: m_SizeDelta.y
-      value: 61
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 4002528869793121930, guid: 9aa3328b080774e6a968fc5910820dbf,
         type: 3}
       propertyPath: m_AnchoredPosition.x
-      value: 100
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 4002528869793121930, guid: 9aa3328b080774e6a968fc5910820dbf,
         type: 3}
       propertyPath: m_AnchoredPosition.y
-      value: -35.5
+      value: 0
       objectReference: {fileID: 0}
     m_RemovedComponents: []
   m_SourcePrefab: {fileID: 100100000, guid: 9aa3328b080774e6a968fc5910820dbf, type: 3}

+ 229 - 7
Assets/MRNavigatorStart/MRNavigatorStart.prefab

@@ -1846,6 +1846,149 @@ MonoBehaviour:
     width: 1
     height: 1
   Radius: 10
+--- !u!1 &3159385754187202348
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 2368603308745006879}
+  - component: {fileID: 548254708760735104}
+  - component: {fileID: 2896780473104744184}
+  - component: {fileID: 959910234900670624}
+  m_Layer: 5
+  m_Name: RawImage
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &2368603308745006879
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3159385754187202348}
+  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:
+  - {fileID: 4737804203443699740}
+  m_Father: {fileID: 4002528868428170386}
+  m_RootOrder: 6
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 176.1, y: 137.3}
+  m_SizeDelta: {x: 35, y: 35}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &548254708760735104
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3159385754187202348}
+  m_CullTransparentMesh: 1
+--- !u!114 &2896780473104744184
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3159385754187202348}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 513794e5741095248bc47b18d23ed175, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 0.31764707}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Texture: {fileID: 0}
+  m_UVRect:
+    serializedVersion: 2
+    x: 0
+    y: 0
+    width: 1
+    height: 1
+--- !u!114 &959910234900670624
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3159385754187202348}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Navigation:
+    m_Mode: 3
+    m_WrapAround: 0
+    m_SelectOnUp: {fileID: 0}
+    m_SelectOnDown: {fileID: 0}
+    m_SelectOnLeft: {fileID: 0}
+    m_SelectOnRight: {fileID: 0}
+  m_Transition: 1
+  m_Colors:
+    m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+    m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+    m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+    m_ColorMultiplier: 1
+    m_FadeDuration: 0.1
+  m_SpriteState:
+    m_HighlightedSprite: {fileID: 0}
+    m_PressedSprite: {fileID: 0}
+    m_SelectedSprite: {fileID: 0}
+    m_DisabledSprite: {fileID: 0}
+  m_AnimationTriggers:
+    m_NormalTrigger: Normal
+    m_HighlightedTrigger: Highlighted
+    m_PressedTrigger: Pressed
+    m_SelectedTrigger: Selected
+    m_DisabledTrigger: Disabled
+  m_Interactable: 1
+  m_TargetGraphic: {fileID: 2896780473104744184}
+  m_OnClick:
+    m_PersistentCalls:
+      m_Calls:
+      - m_Target: {fileID: 4002528867895331413}
+        m_TargetAssemblyTypeName: GameManager, Navigator
+        m_MethodName: OnSettingBtnValueChanged
+        m_Mode: 6
+        m_Arguments:
+          m_ObjectArgument: {fileID: 0}
+          m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
+          m_IntArgument: 0
+          m_FloatArgument: 0
+          m_StringArgument: 
+          m_BoolArgument: 0
+        m_CallState: 2
+      - m_Target: {fileID: 4002528867751072950}
+        m_TargetAssemblyTypeName: UnityEngine.UI.Toggle, UnityEngine.UI
+        m_MethodName: set_isOn
+        m_Mode: 6
+        m_Arguments:
+          m_ObjectArgument: {fileID: 0}
+          m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
+          m_IntArgument: 0
+          m_FloatArgument: 0
+          m_StringArgument: 
+          m_BoolArgument: 0
+        m_CallState: 2
 --- !u!1 &3211260858995621621
 GameObject:
   m_ObjectHideFlags: 0
@@ -15353,6 +15496,7 @@ MonoBehaviour:
   Map: {fileID: 4002528868729752129}
   list_route: []
   listAllPoint: []
+  mats: {fileID: 2100000, guid: c48bcd49845c6eb4fb04b33c70ff5e41, type: 2}
 --- !u!114 &4002528867995829741
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -16935,7 +17079,7 @@ RectTransform:
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0.5, y: 1}
   m_AnchorMax: {x: 0.5, y: 1}
-  m_AnchoredPosition: {x: 0, y: -389}
+  m_AnchoredPosition: {x: 0, y: -415.00003}
   m_SizeDelta: {x: 160, y: 40}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &4002528868037911384
@@ -26922,8 +27066,8 @@ RectTransform:
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 1, y: 1}
-  m_AnchoredPosition: {x: 0, y: 0}
-  m_SizeDelta: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: -14.4}
+  m_SizeDelta: {x: 0, y: 28.8}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &4002528868426916515
 CanvasRenderer:
@@ -27001,6 +27145,7 @@ RectTransform:
   - {fileID: 4557361212079027773}
   - {fileID: 4002528869634433777}
   - {fileID: 4002528868037911385}
+  - {fileID: 2368603308745006879}
   m_Father: {fileID: 2530016615044479480}
   m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -43960,6 +44105,10 @@ MonoBehaviour:
   RouteItem: {fileID: 4002528868377397930}
   list_route: []
   m_CalMap: {fileID: 4002528869354764135}
+  mats:
+  - {fileID: 2100000, guid: 0f8ae0187a5a6c04eb7606fe00b5e5d2, type: 2}
+  - {fileID: 2100000, guid: 3a5a2e1c7de626148bc11b260327baca, type: 2}
+  - {fileID: 2100000, guid: c48bcd49845c6eb4fb04b33c70ff5e41, type: 2}
 --- !u!1 &4002528869081249928
 GameObject:
   m_ObjectHideFlags: 0
@@ -51917,7 +52066,7 @@ RectTransform:
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0.5, y: 1}
   m_AnchorMax: {x: 0.5, y: 1}
-  m_AnchoredPosition: {x: 0, y: -48}
+  m_AnchoredPosition: {x: 0, y: -74.000015}
   m_SizeDelta: {x: 160, y: 40}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &5565693499368922188
@@ -61673,7 +61822,7 @@ RectTransform:
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0.5, y: 1}
   m_AnchorMax: {x: 0.5, y: 1}
-  m_AnchoredPosition: {x: 0, y: -112}
+  m_AnchoredPosition: {x: 0, y: -138.00002}
   m_SizeDelta: {x: 160, y: 40}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &6627298769481482286
@@ -65610,7 +65759,7 @@ RectTransform:
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0.5, y: 1}
   m_AnchorMax: {x: 0.5, y: 1}
-  m_AnchoredPosition: {x: 0, y: -168}
+  m_AnchoredPosition: {x: 0, y: -194.00002}
   m_SizeDelta: {x: 160, y: 40}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &4002528869634433776
@@ -80057,7 +80206,7 @@ RectTransform:
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0.5, y: 1}
   m_AnchorMax: {x: 0.5, y: 1}
-  m_AnchoredPosition: {x: 0, y: -173}
+  m_AnchoredPosition: {x: 0, y: -199}
   m_SizeDelta: {x: 160, y: 40}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &1226937676205419388
@@ -80386,6 +80535,79 @@ MonoBehaviour:
     y: 0
     width: 1
     height: 1
+--- !u!1 &6084438870870404714
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 4737804203443699740}
+  - component: {fileID: 7429819880683789094}
+  - component: {fileID: 4742710103987439352}
+  m_Layer: 5
+  m_Name: RawImage (1)
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &4737804203443699740
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6084438870870404714}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: -0.000119209275}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 2368603308745006879}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0.000015258789, y: 0}
+  m_SizeDelta: {x: 30, y: 30}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &7429819880683789094
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6084438870870404714}
+  m_CullTransparentMesh: 1
+--- !u!114 &4742710103987439352
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6084438870870404714}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 1344c3c82d62a2a41a3576d8abb8e3ea, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Texture: {fileID: 2800000, guid: d92f6e1300f84824c9b007e45e845c9b, type: 3}
+  m_UVRect:
+    serializedVersion: 2
+    x: 0
+    y: 0
+    width: 1
+    height: 1
 --- !u!1 &6148610683616138638
 GameObject:
   m_ObjectHideFlags: 0

+ 22 - 3
Assets/MRNavigatorStart/UI/LoadingPanel.prefab

@@ -11,6 +11,7 @@ GameObject:
   - component: {fileID: 2927317970720182575}
   - component: {fileID: 2927317970720182573}
   - component: {fileID: 2927317970720182572}
+  - component: {fileID: 2154754914309150088}
   m_Layer: 5
   m_Name: LoadingPanel
   m_TagString: Untagged
@@ -28,6 +29,7 @@ RectTransform:
   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:
   - {fileID: 4478456966072450736}
   - {fileID: 7883066058464185234}
@@ -63,6 +65,7 @@ MonoBehaviour:
   m_Material: {fileID: 0}
   m_Color: {r: 0.1792453, g: 0.17163582, b: 0.17163582, a: 0.22745098}
   m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
   m_Maskable: 1
   m_OnCullStateChanged:
     m_PersistentCalls:
@@ -77,6 +80,18 @@ MonoBehaviour:
   m_FillOrigin: 0
   m_UseSpriteMesh: 0
   m_PixelsPerUnitMultiplier: 1
+--- !u!114 &2154754914309150088
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2927317970720182574}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 0e9639072119444569cdbbb835f683d7, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
 --- !u!1 &4563110578577946978
 GameObject:
   m_ObjectHideFlags: 0
@@ -103,8 +118,9 @@ RectTransform:
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 4563110578577946978}
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
-  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalPosition: {x: 0, y: 0, z: 3455}
   m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 2927317970720182575}
   m_RootOrder: 1
@@ -137,6 +153,7 @@ MonoBehaviour:
   m_Material: {fileID: 0}
   m_Color: {r: 1, g: 1, b: 1, a: 1}
   m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
   m_Maskable: 1
   m_OnCullStateChanged:
     m_PersistentCalls:
@@ -181,8 +198,9 @@ RectTransform:
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 6807162012114303033}
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
-  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalPosition: {x: 0, y: 0, z: 3455}
   m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 2927317970720182575}
   m_RootOrder: 2
@@ -215,6 +233,7 @@ MonoBehaviour:
   m_Material: {fileID: 0}
   m_Color: {r: 1, g: 1, b: 1, a: 1}
   m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
   m_Maskable: 1
   m_OnCullStateChanged:
     m_PersistentCalls:
@@ -273,7 +292,7 @@ PrefabInstance:
     - target: {fileID: 1637411196048548933, guid: 62ffdc2baf8a97d41b1b2a5426a93d93,
         type: 3}
       propertyPath: m_LocalPosition.z
-      value: 0
+      value: 3455
       objectReference: {fileID: 0}
     - target: {fileID: 1637411196048548933, guid: 62ffdc2baf8a97d41b1b2a5426a93d93,
         type: 3}

+ 9 - 7
Assets/Prefab/Route/Materials/LineMat_1.mat

@@ -12,6 +12,8 @@ Material:
   m_ValidKeywords:
   - _ALPHABLEND_ON
   - _EMISSION
+  - _GLOSSYREFLECTIONS_OFF
+  - _SPECULARHIGHLIGHTS_OFF
   m_InvalidKeywords: []
   m_LightmapFlags: 1
   m_EnableInstancingVariants: 0
@@ -40,12 +42,12 @@ Material:
         m_Scale: {x: 1, y: 1}
         m_Offset: {x: 0, y: 0}
     - _EmissionMap:
-        m_Texture: {fileID: 2800000, guid: d3f7a4a407ccaee48915bc7827f79dd6, type: 3}
-        m_Scale: {x: 1, y: 1}
+        m_Texture: {fileID: 2800000, guid: e299ae933dbae4fa293f7f428958a517, type: 3}
+        m_Scale: {x: 5.89, y: 1}
         m_Offset: {x: 0, y: 0}
     - _MainTex:
-        m_Texture: {fileID: 2800000, guid: d3f7a4a407ccaee48915bc7827f79dd6, type: 3}
-        m_Scale: {x: 1, y: 1}
+        m_Texture: {fileID: 2800000, guid: e299ae933dbae4fa293f7f428958a517, type: 3}
+        m_Scale: {x: 5.89, y: 1}
         m_Offset: {x: 0, y: 0}
     - _MetallicGlossMap:
         m_Texture: {fileID: 0}
@@ -67,17 +69,17 @@ Material:
     - _DstBlend: 10
     - _GlossMapScale: 1
     - _Glossiness: 0.5
-    - _GlossyReflections: 1
+    - _GlossyReflections: 0
     - _Metallic: 0
     - _Mode: 2
     - _OcclusionStrength: 1
     - _Parallax: 0.02
     - _SmoothnessTextureChannel: 0
-    - _SpecularHighlights: 1
+    - _SpecularHighlights: 0
     - _SrcBlend: 5
     - _UVSec: 0
     - _ZWrite: 0
     m_Colors:
     - _Color: {r: 1, g: 1, b: 1, a: 1}
-    - _EmissionColor: {r: 1, g: 1, b: 1, a: 1}
+    - _EmissionColor: {r: 0, g: 1, b: 0.8062601, a: 1}
   m_BuildTextureStacks: []

+ 9 - 4
Assets/Prefab/Route/Materials/LineMat_2.mat

@@ -2,14 +2,17 @@
 %TAG !u! tag:unity3d.com,2011:
 --- !u!21 &2100000
 Material:
-  serializedVersion: 6
+  serializedVersion: 8
   m_ObjectHideFlags: 0
   m_CorrespondingSourceObject: {fileID: 0}
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
   m_Name: LineMat_2
   m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
-  m_ShaderKeywords: _ALPHABLEND_ON _EMISSION
+  m_ValidKeywords:
+  - _ALPHABLEND_ON
+  - _EMISSION
+  m_InvalidKeywords: []
   m_LightmapFlags: 1
   m_EnableInstancingVariants: 0
   m_DoubleSidedGI: 0
@@ -37,11 +40,11 @@ Material:
         m_Scale: {x: 1, y: 1}
         m_Offset: {x: 0, y: 0}
     - _EmissionMap:
-        m_Texture: {fileID: 2800000, guid: 8d2978ebe0e61344e84ac48fa5d7426c, type: 3}
+        m_Texture: {fileID: 2800000, guid: e299ae933dbae4fa293f7f428958a517, type: 3}
         m_Scale: {x: 1, y: 1}
         m_Offset: {x: 0, y: 0}
     - _MainTex:
-        m_Texture: {fileID: 2800000, guid: 8d2978ebe0e61344e84ac48fa5d7426c, type: 3}
+        m_Texture: {fileID: 2800000, guid: e299ae933dbae4fa293f7f428958a517, type: 3}
         m_Scale: {x: 1, y: 1}
         m_Offset: {x: 0, y: 0}
     - _MetallicGlossMap:
@@ -56,6 +59,7 @@ Material:
         m_Texture: {fileID: 0}
         m_Scale: {x: 1, y: 1}
         m_Offset: {x: 0, y: 0}
+    m_Ints: []
     m_Floats:
     - _BumpScale: 1
     - _Cutoff: 0.5
@@ -76,3 +80,4 @@ Material:
     m_Colors:
     - _Color: {r: 1, g: 1, b: 1, a: 1}
     - _EmissionColor: {r: 1, g: 1, b: 1, a: 1}
+  m_BuildTextureStacks: []

+ 9 - 4
Assets/Prefab/Route/Materials/LineMat_3.mat

@@ -2,14 +2,17 @@
 %TAG !u! tag:unity3d.com,2011:
 --- !u!21 &2100000
 Material:
-  serializedVersion: 6
+  serializedVersion: 8
   m_ObjectHideFlags: 0
   m_CorrespondingSourceObject: {fileID: 0}
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
   m_Name: LineMat_3
   m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
-  m_ShaderKeywords: _ALPHABLEND_ON _EMISSION
+  m_ValidKeywords:
+  - _ALPHABLEND_ON
+  - _EMISSION
+  m_InvalidKeywords: []
   m_LightmapFlags: 1
   m_EnableInstancingVariants: 0
   m_DoubleSidedGI: 0
@@ -37,11 +40,11 @@ Material:
         m_Scale: {x: 1, y: 1}
         m_Offset: {x: 0, y: 0}
     - _EmissionMap:
-        m_Texture: {fileID: 2800000, guid: d3f7a4a407ccaee48915bc7827f79dd6, type: 3}
+        m_Texture: {fileID: 2800000, guid: e299ae933dbae4fa293f7f428958a517, type: 3}
         m_Scale: {x: 1, y: 1}
         m_Offset: {x: 0, y: 0}
     - _MainTex:
-        m_Texture: {fileID: 2800000, guid: d3f7a4a407ccaee48915bc7827f79dd6, type: 3}
+        m_Texture: {fileID: 2800000, guid: e299ae933dbae4fa293f7f428958a517, type: 3}
         m_Scale: {x: 1, y: 1}
         m_Offset: {x: 0, y: 0}
     - _MetallicGlossMap:
@@ -56,6 +59,7 @@ Material:
         m_Texture: {fileID: 0}
         m_Scale: {x: 1, y: 1}
         m_Offset: {x: 0, y: 0}
+    m_Ints: []
     m_Floats:
     - _BumpScale: 1
     - _Cutoff: 0.5
@@ -76,3 +80,4 @@ Material:
     m_Colors:
     - _Color: {r: 1, g: 1, b: 1, a: 1}
     - _EmissionColor: {r: 1, g: 1, b: 1, a: 1}
+  m_BuildTextureStacks: []

+ 3 - 3
ProjectSettings/ProjectSettings.asset

@@ -938,6 +938,7 @@ PlayerSettings:
   metroSplashScreenUseBackgroundColor: 1
   platformCapabilities:
     WindowsStoreApps:
+      CodeGeneration: False
       OfflineMapsManagement: False
       HumanInterfaceDevice: False
       Location: False
@@ -949,7 +950,6 @@ PlayerSettings:
       PrivateNetworkClientServer: False
       InternetClientServer: False
       VideosLibrary: False
-      BackgroundMediaPlayback: False
       Objects3D: False
       RemoteSystem: False
       BlockedChatMessages: False
@@ -971,9 +971,9 @@ PlayerSettings:
       PointOfService: False
       RecordedCallsFolder: False
       Contacts: False
-      InternetClient: True
       Proximity: False
-      CodeGeneration: False
+      InternetClient: True
+      BackgroundMediaPlayback: False
       EnterpriseAuthentication: False
   metroTargetDeviceFamilies: {}
   metroFTAName: 

+ 2 - 6
ProjectSettings/QualitySettings.asset

@@ -98,7 +98,7 @@ QualitySettings:
     softVegetation: 0
     realtimeReflectionProbes: 0
     billboardsFaceCameraPosition: 0
-    vSyncCount: 1
+    vSyncCount: 0
     lodBias: 0.7
     maximumLODLevel: 0
     streamingMipmapsActive: 0
@@ -222,8 +222,4 @@ QualitySettings:
     resolutionScalingFixedDPIFactor: 1
     customRenderPipeline: {fileID: 0}
     excludedTargetPlatforms: []
-  m_PerPlatformDefaultQuality:
-    Android: 0
-    Server: 0
-    Standalone: 0
-    iPhone: 0
+  m_PerPlatformDefaultQuality: {}