瀏覽代碼

Merge branch 'F/0710_2.1+2.0' of ssh://gogs.ghz-tech.com:30979/GHzGlass/GHZMRNavigatorProXR into F/20240210_2.3_dangjian

“hujiajun” 1 年之前
父節點
當前提交
5ce440aaaf
共有 57 個文件被更改,包括 3140 次插入1277 次删除
  1. 31 11
      Assets/HotUpdate/BaseTemPlate.cs
  2. 6 6
      Assets/HotUpdate/DRFanLayout.cs
  3. 3 3
      Assets/HotUpdate/DRTitleLayout.cs
  4. 27 6
      Assets/HotUpdate/DownloadResManager.cs
  5. 11 0
      Assets/HotUpdate/EditorPanel.cs
  6. 90 27
      Assets/HotUpdate/GameManager.cs
  7. 1 1
      Assets/HotUpdate/IrobotMove.cs
  8. 9 0
      Assets/HotUpdate/LoadManager.cs
  9. 1 10
      Assets/HotUpdate/LocalLoadManager.cs
  10. 32 1
      Assets/HotUpdate/LoginPanel.cs
  11. 3 3
      Assets/HotUpdate/MQTTClient.cs
  12. 2 1
      Assets/HotUpdate/MaterialBtnItem.cs
  13. 4 1
      Assets/HotUpdate/ModelItem.cs
  14. 64 5
      Assets/HotUpdate/ModelList.cs
  15. 1 2
      Assets/HotUpdate/ModelManager.cs
  16. 58 50
      Assets/HotUpdate/MoveChange.cs
  17. 4 1
      Assets/HotUpdate/MovieScreen.cs
  18. 3 1
      Assets/HotUpdate/MultiPlayerManager.cs
  19. 12 5
      Assets/HotUpdate/Patch_VideoController.cs
  20. 4 0
      Assets/HotUpdate/ResMgr.cs
  21. 3 3
      Assets/HotUpdate/SRSectorLayout.cs
  22. 6 4
      Assets/HotUpdate/SavePanel.cs
  23. 11 2
      Assets/HotUpdate/SceneChoose.cs
  24. 1 0
      Assets/HotUpdate/SettingPanel.cs
  25. 1 1
      Assets/HotUpdate/ShowTipTime.cs
  26. 1 0
      Assets/HotUpdate/SpotsItem.cs
  27. 28 23
      Assets/HotUpdate/TemplateImage.cs
  28. 306 129
      Assets/HotUpdate/TemplateModel.cs
  29. 3 2
      Assets/HotUpdate/TemplateText.cs
  30. 15 5
      Assets/HotUpdate/TemplateVideo.cs
  31. 87 0
      Assets/HotUpdate/TriLibLocalLoad.cs
  32. 11 0
      Assets/HotUpdate/TriLibLocalLoad.cs.meta
  33. 20 16
      Assets/HotUpdate/UIEditorPanel.cs
  34. 2 2
      Assets/HotUpdate/UIManager.cs
  35. 13 0
      Assets/HotUpdate/UserChooseScene.cs
  36. 1 0
      Assets/HotUpdate/UserChooseSceneItem.cs
  37. 3 1
      Assets/HotUpdate/UserSceneUI.cs
  38. 2 0
      Assets/HotUpdate/VufroiaTrigger.cs
  39. 8 2
      Assets/HybridCLRGenerate/AOTGenericReferences.cs
  40. 16 2
      Assets/HybridCLRGenerate/link.xml
  41. 18 38
      Assets/MRNavigatorPro.unity
  42. 369 153
      Assets/MRNavigatorStart/MRNavigatorStart.prefab
  43. 312 191
      Assets/MRNavigatorStart/UI/LoginPanel.prefab
  44. 1 1
      Assets/MRNavigatorStart/UI/LoginPanel.prefab.meta
  45. 457 173
      Assets/MRNavigatorStart/UI/SceneChoose.prefab
  46. 1 1
      Assets/MRNavigatorStart/UI/SceneChoose.prefab.meta
  47. 8 7
      Assets/MRNavigatorStart/UI/SceneChoose2.prefab
  48. 1 1
      Assets/MRNavigatorStart/UI/SceneChoose2.prefab.meta
  49. 1 0
      Assets/Plugins/Android/AndroidManifest.xml
  50. 159 9
      Assets/Prefab/BluePrefabs/SceneChooseItem.prefab
  51. 312 191
      Assets/Resources/LoginPanel.prefab
  52. 457 173
      Assets/Resources/SceneChoose.prefab
  53. 4 3
      Assets/Resources/SceneChoose2.prefab
  54. 129 3
      Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF.asset
  55. 4 4
      Assets/Texture/容器 163.png.meta
  56. 2 2
      ProjectSettings/ProjectSettings.asset
  57. 1 1
      ProjectSettings/TagManager.asset

+ 31 - 11
Assets/HotUpdate/BaseTemPlate.cs

@@ -79,13 +79,40 @@ public class BaseTemPlate : MonoBehaviour
         OnInit();
     }
 
-    private void Update()
+    public virtual void Update()
     {
         if(state&&!UserInfo.Instance.is20)
         {
             HideCollider();
         }
-       // HideCollider();
+
+        if(UserInfo.Instance.is20)
+        {
+            if (GetComponent<BoxCollider>() != null)
+                GetComponent<BoxCollider>().enabled = GameManager.m_IsStart20Editor;
+            if (GetComponent<BoundingBox>() != null)
+                GetComponent<BoundingBox>().enabled = GameManager.m_IsStart20Editor;
+            if (GetComponent<ManipulationHandler>() != null)
+                GetComponent<ManipulationHandler>().enabled = GameManager.m_IsStart20Editor;
+            if (transform.Find("BoundingBox") != null)
+                transform.Find("BoundingBox").gameObject.SetActive(GameManager.m_IsStart20Editor);
+            // HideCollider();
+            
+            }
+        else
+        {
+
+            if (GetComponent<BoxCollider>() != null)
+                GetComponent<BoxCollider>().enabled = GameManager.Instance.IsStartEditor;
+            if (GetComponent<BoundingBox>() != null)
+                GetComponent<BoundingBox>().enabled = GameManager.Instance.IsStartEditor;
+            if (GetComponent<ManipulationHandler>() != null)
+                GetComponent<ManipulationHandler>().enabled = GameManager.Instance.IsStartEditor;
+            if (transform.Find("BoundingBox") != null)
+                transform.Find("BoundingBox").gameObject.SetActive(GameManager.Instance.IsStartEditor);
+            // HideCollider();
+        }
+
     }
 
     protected virtual void OnEnable()
@@ -100,21 +127,14 @@ public class BaseTemPlate : MonoBehaviour
     public virtual void HideCollider()
     {
         state = true;
-        if (GetComponent<BoxCollider>() != null)
-            GetComponent<BoxCollider>().enabled = GameManager.Instance.IsStartEditor;
-        if (GetComponent<BoundingBox>() != null)
-            GetComponent<BoundingBox>().enabled = GameManager.Instance.IsStartEditor;
-        if (GetComponent<ManipulationHandler>() != null)
-            GetComponent<ManipulationHandler>().enabled = GameManager.Instance.IsStartEditor;
-        if (transform.Find("BoundingBox") != null)
-            transform.Find("BoundingBox").gameObject.SetActive(GameManager.Instance.IsStartEditor);
     }
 
+
     /// <summary>
     /// 设置素材属性
     /// </summary>
     /// <param name="value">当前素材数据</param>
-    public virtual void SetData(MaterialObjValue value, int updateTime)
+    public virtual void SetData(MaterialObjValue value, long updateTime)
     {
         m_SuCaiData = value;
      //   Debug.Log("@@@@@ " );

+ 6 - 6
Assets/HotUpdate/DRFanLayout.cs

@@ -27,7 +27,7 @@ public class DRFanLayout : MonoBehaviour
                 case (int)MaterialType.None:
                     break;
                 case (int)MaterialType.Image:
-                    var pImage = ResMgr.Instance.Load<GameObject>("Template/Prefab/Image");
+                    var pImage = ResMgr.Instance.Load<GameObject>("Image");
                     go = Instantiate(pImage, par.transform);
                     var imageitem = go.AddComponent<TemplateImage>();
                     go.SetActive(true);
@@ -35,7 +35,7 @@ public class DRFanLayout : MonoBehaviour
                     noText.Add(imageitem);
                     break;
                 case (int)MaterialType.Video:
-                    var pVideo = ResMgr.Instance.Load<GameObject>("Template/Prefab/Video");
+                    var pVideo = ResMgr.Instance.Load<GameObject>("Video");
                     go = Instantiate(pVideo, par.transform);
                     var videoitem = go.AddComponent<TemplateVideo>();
                     videoitem.autoplay = materialObls.autoplay;
@@ -45,7 +45,7 @@ public class DRFanLayout : MonoBehaviour
                     break;
                 case (int)MaterialType.Text:
                     textmat = mat;
-                    var pText = ResMgr.Instance.Load<GameObject>("Template/Prefab/Text");
+                    var pText = ResMgr.Instance.Load<GameObject>("Text");
                     go = Instantiate(pText, par.transform);
                     var textitem = go.AddComponent<TemplateText>();
                     go.SetActive(true);
@@ -141,7 +141,7 @@ public class DRFanLayout : MonoBehaviour
                 case (int)MaterialType.None:
                     break;
                 case (int)MaterialType.Image:
-                    var pImage = ResMgr.Instance.LoadAsync<GameObject>("Template/Prefab/Image");
+                    var pImage = ResMgr.Instance.LoadAsync<GameObject>("Image");
                     yield return pImage;
                     go = Instantiate(pImage.asset as GameObject, par.transform);
                     var imageitem = go.AddComponent<TemplateImage>();
@@ -150,7 +150,7 @@ public class DRFanLayout : MonoBehaviour
                     noText.Add(imageitem);
                     break;
                 case (int)MaterialType.Video:
-                    var pVideo = ResMgr.Instance.LoadAsync<GameObject>("Template/Prefab/Video");
+                    var pVideo = ResMgr.Instance.LoadAsync<GameObject>("Video");
                     yield return pVideo;
                     go = Instantiate(pVideo.asset as GameObject, par.transform);
                     var videoitem = go.AddComponent<TemplateVideo>();
@@ -161,7 +161,7 @@ public class DRFanLayout : MonoBehaviour
                     break;
                 case (int)MaterialType.Text:
                     textmat = mat;
-                    var pText = ResMgr.Instance.LoadAsync<GameObject>("Template/Prefab/Text");
+                    var pText = ResMgr.Instance.LoadAsync<GameObject>("Text");
                     yield return pText;
                     go = Instantiate(pText.asset as GameObject, par.transform);
                     var textitem = go.AddComponent<TemplateText>();

+ 3 - 3
Assets/HotUpdate/DRTitleLayout.cs

@@ -168,7 +168,7 @@ public class DRTitleLayout : MonoBehaviour
                     case (int)MaterialType.None:
                         break;
                     case (int)MaterialType.Image:
-                        var pImage = ResMgr.Instance.LoadAsync<GameObject>("Template/Prefab/Image");
+                        var pImage = ResMgr.Instance.LoadAsync<GameObject>("Image");
                         yield return pImage;
                         go = Instantiate(pImage.asset as GameObject, par.transform);
                         var imageitem = go.AddComponent<TemplateImage>();
@@ -177,7 +177,7 @@ public class DRTitleLayout : MonoBehaviour
                         noText.Add(imageitem);
                         break;
                     case (int)MaterialType.Video:
-                        var pVideo = ResMgr.Instance.LoadAsync<GameObject>("Template/Prefab/Video");
+                        var pVideo = ResMgr.Instance.LoadAsync<GameObject>("Video");
                         yield return pVideo;
                         go = Instantiate(pVideo.asset as GameObject, par.transform);
                         var videoitem = go.AddComponent<TemplateVideo>();
@@ -188,7 +188,7 @@ public class DRTitleLayout : MonoBehaviour
                         break;
                     case (int)MaterialType.Text:
                         textmat = mat;
-                        var pText = ResMgr.Instance.LoadAsync<GameObject>("Template/Prefab/Text");
+                        var pText = ResMgr.Instance.LoadAsync<GameObject>("Text");
                         yield return pText;
                         go = Instantiate(pText.asset as GameObject, par.transform);
                         var textitem = go.AddComponent<TemplateText>();

+ 27 - 6
Assets/HotUpdate/DownloadResManager.cs

@@ -47,7 +47,8 @@ public class DownloadResManager : MonoSingleton<DownloadResManager>
         listFaildMaterial = new List<DownLoadMaterial>();
         qDownload = new Queue<DownLoadMaterial>();
 
-       // PlayerPrefs.DeleteAll();
+        Debug.Log("DGJ  CompletedMaterial ==>" + path + "CompletedMaterial.txt");
+        // PlayerPrefs.DeleteAll();
         //先判断是否存在,再创建
         if (!File.Exists(path + "CompletedMaterial.txt"))
         {
@@ -189,12 +190,26 @@ private bool Screen(DownLoadMaterial downloadMaterial)
         {
             if (downloadMaterial.downLoadPath == listCompletedMaterial[j].downLoadPath)
             {
-                if (downloadMaterial.updataTime == listCompletedMaterial[j].updataTime)
-                    finish = true;
+                if (!UserInfo.Instance.is20)
+                {
+                    if (LoginPanel.downloadMatList.ContainsKey(downloadMaterial.downLoadPath) && LoginPanel.downloadMatList[downloadMaterial.downLoadPath] == listCompletedMaterial[j].updataTime)
+                        finish = true;
+
+                }
+                else
+                {
+                    if (downloadMaterial.updataTime == listCompletedMaterial[j].updataTime)
+                        finish = true;
+
+                }
             }
         }
-      //  Debug.Log("DGJ  ===> Screen  " + finish +"  "+ qDownload.Count);
-        if (!finish)
+        if (!File.Exists(downloadMaterial.localLoadPath))
+        {
+
+            finish = false;
+        }
+            if (!finish)
         {
             listNotMaterial.Add(downloadMaterial);
 
@@ -287,9 +302,14 @@ public class MaterailDetail
 
 public class DownLoadMaterial
 {
+    public string name;
     public string downLoadPath { get; set; }
     public string localLoadPath { get; set; }
-    public long updataTime { get; set; }
+
+    private long _updataTime;
+    public long updataTime { get { return _updataTime; } set {
+            Debug.Log(value+"DGJ  ===> Screen " + downLoadPath);
+            _updataTime = value; } }
 
     public string type { get; set; }
 
@@ -299,6 +319,7 @@ public class DownLoadMaterial
     }
     public DownLoadMaterial(MaterialObjValue value)
     {
+        this.name = value.name;
         this.downLoadPath = value.DownloadPath;
         this.type = value.type.ToString();
         this.localLoadPath = Application.persistentDataPath + "/Material/" + Path.GetFileName(value.DownloadPath);

+ 11 - 0
Assets/HotUpdate/EditorPanel.cs

@@ -2,6 +2,7 @@
 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
+using XRTool.Util;
 
 public class EditorPanel : MonoBehaviour
 {
@@ -121,4 +122,14 @@ public class EditorPanel : MonoBehaviour
     {
         m_EditorPanel.OnClickRemoveBtn -= onClickRemoveBtn;
     }
+
+    private void OnEnable()
+    {
+        TimerMgr.Instance.CreateTimer(()=> {
+            m_SpoitsPanel.gameObject.SetActive(false);
+            m_MaterialsPanel.gameObject.SetActive(false);
+            m_EditorPanel.gameObject.SetActive(false);
+            m_AddMaterialPanel.gameObject.SetActive(false);
+        },0.1f);
+    }
 }

+ 90 - 27
Assets/HotUpdate/GameManager.cs

@@ -233,6 +233,7 @@ public class GameManager : MonoSingleton<GameManager>
     public Toggle EditorToggle;
     private void Awake()
     {
+        m_IroBot.gameObject.SetActive(false);
 
         // Debug.unityLogger.logEnabled = false;
     }
@@ -335,6 +336,7 @@ public class GameManager : MonoSingleton<GameManager>
 
     public void exitscene2()
     {
+        IsRuning = false;
         GameScene.Instance.o20.SetActive(false);
         //m_SetBtn.gameObject.SetActive(false);
         destroyGo(LoadManager.Instance.datFileObj);
@@ -348,6 +350,7 @@ public class GameManager : MonoSingleton<GameManager>
     public List<SceneValue> sucessvalues;
     public void exitscene()
     {
+        IsRuning = false;
         XRLocalizer.Instance.gameObject.SetActive(true);
         m_EditorCanvas.gameObject.SetActive(false);
         m_SettingPanel.gameObject.SetActive(false);
@@ -450,6 +453,9 @@ public class GameManager : MonoSingleton<GameManager>
     public bool isShowDownTip;
     private void Start()
     {
+
+        DispatcherBase.KeyDownDelegateRegister(downEvent);
+        DispatcherBase.KeyUpDelegateRegister(upEvent);
         ARSpace.transformToSpace.Clear();
         ARSpace.spaceToTransform.Clear();
         ARSpace.mapIdToOffset.Clear();
@@ -557,6 +563,17 @@ public class GameManager : MonoSingleton<GameManager>
 
                 }
             }
+            if (BatteryStateNotification != null)
+            {
+                BatteryStateNotification.SetActive(false);
+            }else
+            {
+                BatteryStateNotification = GameObject.Find("BatteryStateNotification");
+                if (BatteryStateNotification != null)
+                {
+                    BatteryStateNotification.SetActive(false);
+                }
+            }
         },1,-1);
         tstart = new ThreadStart(subThread);
         thread = new Thread(tstart);
@@ -564,8 +581,35 @@ public class GameManager : MonoSingleton<GameManager>
 
         StartCoroutine(startSendPos());
 
+        m_EditorCanvas.gameObject.SetActive(false);
+    }
+    public GameObject btnParent;
+
+    private void upEvent(InputKeyCode keyCode, InputDevicePartBase part)
+    {
+        if (part.inputDataBase.SCPointEventData.pointerCurrentRaycast.gameObject == null )
+        {
+              if (IsRuning&&!IsStartEditor)
+                btnParent.gameObject.SetActive(!btnParent.gameObject.activeSelf);
+        }
+        else
+        {
+            if(part.inputDataBase.SCPointEventData.pointerCurrentRaycast.gameObject.layer!=4)
+            {
+                if (IsRuning && !IsStartEditor)
+                    btnParent.gameObject.SetActive(!btnParent.gameObject.activeSelf);
+
+            }
+
+            Debug.Log("part.inputDataBase.SCPointEventData.pointerCurrentRaycast===>"+part.inputDataBase.SCPointEventData.pointerCurrentRaycast.gameObject.name);
+        }
     }
 
+    private void downEvent(InputKeyCode keyCode, InputDevicePartBase part)
+    {
+    }
+
+    GameObject BatteryStateNotification;
         IEnumerator startSendPos()
     {
 
@@ -765,22 +809,12 @@ public class GameManager : MonoSingleton<GameManager>
         m_SettingPanel.gameObject.SetActive(true);
         m_EditorPanel.Init();
         m_SettingPanel.Init();
-        yield return new WaitForSeconds(0.5f);
+        bool isReboot = false;
         try
         {
             if (RouteCtr && RouteCtr.List_route != null && RouteCtr.List_route[0] && RouteCtr.List_route[0].GetComponent<LineRenderer>() && RouteCtr.List_route[0].GetComponent<LineRenderer>().positionCount > 0)
             {
-                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();
-
-                //if (id < 3)
-                //{
-                //m_IroBot = Irobots[id - 1];
-                m_IroBot.gameObject.SetActive(true);
-                m_IroBot.Points = Player.MovePoints;
+                isReboot = true;
                 //}
             }
 
@@ -789,7 +823,31 @@ public class GameManager : MonoSingleton<GameManager>
         {
 
         }
+
+        if(isReboot)
+        {
+
+            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();
+
+            m_IroBot.Points = Player.MovePoints;
+
+
+            for (int i = 0; i < m_MinMap.list_route.Count; i++)
+            {
+                m_MinMap.list_route[i].gameObject.SetActive(RouteCtr.gameObject.activeSelf);
+            }
+            //if (id < 3)
+            //{
+            //m_IroBot = Irobots[id - 1];
+            m_IroBot.gameObject.SetActive(true);
+        }
+
         IsRuning = true;
+
         m_SetBtn.gameObject.SetActive(true);
         InitCrystals();
         InitBoxColliders();
@@ -873,12 +931,12 @@ public class GameManager : MonoSingleton<GameManager>
     //    }
     //}
 
-
     #region 设置功能
     public bool needSavePosRotScale = true;
     public void OnEditorBtnValueChanged(bool ison)
     {
         m_EditorCanvas.gameObject.SetActive(ison);
+
         m_IsStartEditor = ison;
 
         for (int i = 0; i < ListColiderBoxs_Mesh.Count; i++)
@@ -893,15 +951,15 @@ public class GameManager : MonoSingleton<GameManager>
                 GetPosRotScale(); // 获取所有物体位置旋转缩放
                 needSavePosRotScale = false;
             }
-            m_EditorCanvas.position = OpenXRCamera.Instance.head.position + Player.transform.forward + new Vector3(0, 0.5f, 0);
-            m_EditorCanvas.eulerAngles = new Vector3(0, OpenXRCamera.Instance.head.eulerAngles.y, 0);
+           // m_EditorCanvas.position = OpenXRCamera.Instance.head.position + Player.transform.forward + new Vector3(0, 0.5f, 0);
+           /// m_EditorCanvas.eulerAngles = new Vector3(0, OpenXRCamera.Instance.head.eulerAngles.y, 0);
 
             CommandSystem.Instance.Send( new EditorSettingCommand(true){ } );
             CommandSystem.Instance.Send( new Patch_VideoCommand(true){ } );
         }
         else
         {
-            m_EditorCanvas.position = OpenXRCamera.Instance.head.position + new Vector3(0, 100, 0);
+          //  m_EditorCanvas.position = OpenXRCamera.Instance.head.position + new Vector3(0, 100, 0);
 
             if (SpoitIndex >= 0 && !IsTriggerExiting)
             {
@@ -1068,17 +1126,18 @@ public class GameManager : MonoSingleton<GameManager>
                 if(jd["message"].ToString()=="success")
                 {
 
-                    InstantiateCommand Command = new InstantiateCommand(
-                        InstantiateSystem.Instance.BlueObject.WarningPopUp,
-                        InstantiateSystem.Instance.BlueObject.SuccessText);
-                    CommandSystem.Instance.Send(Command);
-                }else
+                    ShowTipTime.Instance.gameObject.SetActive(true);
+                    ShowTipTime.Instance.GetComponent<ShowTipTime>().TimeFloat = 3;
+                    ShowTipTime.Instance.GetComponent<ShowTipTime>().t = 0;
+                    ShowTipTime.Instance.GetComponentInChildren<Text>().text = "保存成功";
+                }
+                else
                 {
 
-                    InstantiateCommand Command = new InstantiateCommand(
-                        InstantiateSystem.Instance.BlueObject.WarningPopUp,
-                        InstantiateSystem.Instance.BlueObject.NetErrorText);
-                    CommandSystem.Instance.Send(Command);
+                    ShowTipTime.Instance.gameObject.SetActive(true);
+                    ShowTipTime.Instance.GetComponent<ShowTipTime>().TimeFloat = 3;
+                    ShowTipTime.Instance.GetComponent<ShowTipTime>().t = 0;
+                    ShowTipTime.Instance.GetComponentInChildren<Text>().text = "保存失败";
                 }
                 Debug.Log("保存回调===》" + str);
             });
@@ -1832,7 +1891,6 @@ public class GameManager : MonoSingleton<GameManager>
                 go.name = string.IsNullOrWhiteSpace(mat.name) ? spoit.name + "-" + i.ToString() : mat.name;
                 mat.name = go.name;
                 go.AddComponent<EditorEventHandler>().Type = (MaterialType)(mat.type);
-
                 if (material.select)
                 {
                     go.transform.localPosition = mat.ObjectTransform.nowPos;
@@ -2012,6 +2070,9 @@ public class GameManager : MonoSingleton<GameManager>
             {
                 go.transform.localPosition = mat.ObjectTransform.nowPos;
                 go.transform.localEulerAngles = mat.ObjectTransform.nowRot;
+                if(mat.ObjectTransform.nowScale==Vector3.zero)
+                    go.transform.localScale = Vector3.one;
+                else
                 go.transform.localScale = mat.ObjectTransform.nowScale;
             }
             else
@@ -2084,7 +2145,9 @@ public class GameManager : MonoSingleton<GameManager>
     {
         // 创建锚点  给锚点赋值
 
-        GameObject anchorObj = GameObject.Instantiate(Resources.Load<GameObject>("Template/Prefab/Anchor"),AnchorsParent);
+        UnityEngine.Object @object = ResMgr.Instance.Load("Anchor");
+        GameObject gameObject = UnityEngine.Object.Instantiate<GameObject>(@object as GameObject);
+        GameObject anchorObj = GameObject.Instantiate(gameObject, AnchorsParent);
         anchorObj.name = "Anchor" + anchor.id;
         /*
         VuforiaAnchor vuforiaAnchor = anchorObj.GetComponent<VuforiaAnchor>();

+ 1 - 1
Assets/HotUpdate/IrobotMove.cs

@@ -21,7 +21,7 @@ public class IrobotMove : MonoBehaviour
     private bool m_IsWalk;
     private Animator m_Animator;
 
-    private void Start()
+   void OnEnable()
     {
         //  if (GameObject.Find("NRCameraRig") != null)
         NRCameraRig = OpenXRCamera.Instance.head;//GameObject.Find("NRCameraRig").GetComponent<Transform>();

+ 9 - 0
Assets/HotUpdate/LoadManager.cs

@@ -146,6 +146,14 @@ public class LoadManager : Singleton<LoadManager>
     public GameObject xmlFileDownObj;
     public void loadVuforia(string xmlFile, string datFile, Action<bool> xmlcallback, Action<bool> datcallback)
     {
+        if (File.Exists(Application.persistentDataPath + "/StreamingAssets/Vuforia/GHZVuforia.xml"))
+        {
+            File.Delete(Application.persistentDataPath + "/StreamingAssets/Vuforia/GHZVuforia.xml");
+        }
+        if (File.Exists(Application.persistentDataPath + "/StreamingAssets/Vuforia/GHZVuforia.dat"))
+        {
+            File.Delete(Application.persistentDataPath + "/StreamingAssets/Vuforia/GHZVuforia.dat");
+        }
         if (!Directory.Exists(Application.persistentDataPath + "/StreamingAssets"))
         {
             Directory.CreateDirectory(Application.persistentDataPath + "/StreamingAssets");
@@ -203,6 +211,7 @@ public class LoadManager : Singleton<LoadManager>
 
     public DownLoadItem getdownloaditem(ModelItem mi)
     {
+        Debug.Log("getdownloaditem=====>"+getLoadName(mi.url, mi.Version));
         if(downList.ContainsKey(getLoadName(mi.url, mi.Version)))
         {
 

+ 1 - 10
Assets/HotUpdate/LocalLoadManager.cs

@@ -95,7 +95,6 @@ public class LocalLoadManager : MonoSingleton<LocalLoadManager>
 
         if (!File.Exists(downloadMaterial.localLoadPath))
         {
-            Debug.Log("DGJ  ====》 文件不存在 " + downloadMaterial.localLoadPath);
             MsgHandler.SendMsg(downloadMaterial.downLoadPath, new Msg(downloadMaterial.downLoadPath, null));
         }
         else
@@ -105,15 +104,7 @@ public class LocalLoadManager : MonoSingleton<LocalLoadManager>
                 long fileSize = new FileInfo(downloadMaterial.localLoadPath).Length;
 
                 byte[] buffer = new byte[fileSize]; // 设置一个读取缓冲区
-
-                int bytesRead;
-                while ((bytesRead = fs.Read(buffer, 0, buffer.Length)) > 0)
-                {
-                    // 在这里处理读取到的数据
-                    // Console.WriteLine("Read " + bytesRead + " bytes.");
-                }
-
-                yield return bytesRead == 0;
+                yield return fs.ReadAsync(buffer, 0, buffer.Length);
                 dicLoaclData.Add(downloadMaterial.downLoadPath, buffer);
                 // isDownLoad = true;
                 MsgHandler.SendMsg(downloadMaterial.downLoadPath, new Msg(downloadMaterial.downLoadPath, buffer));

+ 32 - 1
Assets/HotUpdate/LoginPanel.cs

@@ -40,6 +40,8 @@ public class LoginPanel : BaseUI
 
     Toggle Choose21;
     Toggle Choose20;
+
+    public GameObject keyBoardgo;
     protected override void OnAwake()
     {
         base.OnAwake();
@@ -81,12 +83,33 @@ public class LoginPanel : BaseUI
         m_Versaion = CacheTransform.Find("SNAndVersion/Versaion/Text").GetComponent<Text>();
         AddUIListenEvent();
     }
+    private IEnumerator showkeyboard()
+    {
+        SCKeyboardFollower sCKeyboardFollower=null;
+        while (true)
+        {
+                sCKeyboardFollower = FindObjectOfType<SCKeyboardFollower>();
+
+            if(sCKeyboardFollower)
+            {
+                sCKeyboardFollower.enabled = false;
+                Transform keytr = sCKeyboardFollower.transform.parent;
+                sCKeyboardFollower.transform.parent = this.transform;
+                sCKeyboardFollower.transform.localEulerAngles = new Vector3(20, 0, 0);
+                sCKeyboardFollower.transform.GetComponent<RectTransform>().anchoredPosition3D = new Vector3(385, 210,-82f);
+                sCKeyboardFollower.transform.parent = keytr;
+                
+            }
+            yield return null;
+        }
+    }
     Timer times;
     /// <summary>
     /// 添加UI的监听事件
     /// </summary>
     private void AddUIListenEvent()
     {
+        StartCoroutine(showkeyboard());
         m_Account.onEndEdit.AddListener(OnAccountEndEdit);
         m_EmptyAccountBtn.onClick.AddListener(OnclickEmptyAccount);
 
@@ -778,6 +801,14 @@ public class LoginPanel : BaseUI
                         DownLoadMaterial data1 = new DownLoadMaterial();
                         string filename = Path.GetFileName(matObj.DownloadPath);
                         data1.downLoadPath = matObj.DownloadPath;
+                        if(downloadMatList.ContainsKey(data1.downLoadPath))
+                        {
+                            downloadMatList[data1.downLoadPath] = mat.updateTime;
+                        }else
+                        {
+                            downloadMatList.Add(data1.downLoadPath,mat.updateTime);
+
+                        }
                         data1.updataTime = mat.updateTime;
                         data1.localLoadPath = Application.persistentDataPath + "/Material/" + filename;
                         listMaterail.Add(data1);
@@ -788,7 +819,7 @@ public class LoginPanel : BaseUI
 
        
     }
-
+    public static Dictionary<string, int> downloadMatList = new Dictionary<string, int>();
     /// <summary>
     /// 是否记住密码
     /// </summary>

+ 3 - 3
Assets/HotUpdate/MQTTClient.cs

@@ -14,7 +14,7 @@ public class MQTTClient : MonoSingleton<MQTTClient>
 
     string password = null;// 需要根据服务器设置
 
-    public static byte[] bytes;
+   // public static byte[] bytes;
    // public static byt ta;
     QTTManager qt;
     // Start is called before the first frame update
@@ -27,9 +27,9 @@ public class MQTTClient : MonoSingleton<MQTTClient>
             Permission.RequestUserPermission(Permission.ExternalStorageRead);
             Permission.RequestUserPermission(Permission.ExternalStorageWrite);
         }
-        bytes = (Resources.Load("emqxsl-ca") as TextAsset).bytes;
+        //bytes = (Resources.Load("emqxsl-ca") as TextAsset).bytes;
         
-        Debug.Log(" DGJ  ===> emqxsl-ca.bytes "+ bytes.Length);
+        //Debug.Log(" DGJ  ===> emqxsl-ca.bytes "+ bytes.Length);
     }
     Queue<MqttMsgPublishEventArgs> rlist = new Queue<MqttMsgPublishEventArgs>();
     private void OnReceived(MqttMsgPublishEventArgs obj)

+ 2 - 1
Assets/HotUpdate/MaterialBtnItem.cs

@@ -160,7 +160,8 @@ public class MaterialBtnItem : MonoBehaviour, EventObserver
     {
         if(m_Text)
         m_Text.text = null;
-        m_Image.sprite = null;
+        if (m_Image)
+            m_Image.sprite = null;
         MaterialObj = null;
         m_ObjectValue = null;
         IsCollider = false;

+ 4 - 1
Assets/HotUpdate/ModelItem.cs

@@ -22,6 +22,7 @@ public enum ModelType
 }
 public class ModelItem : System.ICloneable
 {
+    public bool autoPlay;
 
     public int updateTime { get; set; }
     //WEB端排版
@@ -216,7 +217,6 @@ public class ModelItem : System.ICloneable
     public object Clone()
     {
         ModelItem clonedObject = (ModelItem)this.MemberwiseClone();
-
         return clonedObject;
     }
     public byte[] abByte;
@@ -238,6 +238,7 @@ public class ModelItem : System.ICloneable
     public IEnumerator loadmodel()
     {
         DownLoadItem dloadi = LoadManager.Instance.getdownloaditem(this);
+        Debug.Log("getdownloaditem=====>" + dloadi+"_"+ isload+"_"+id);
         if (dloadi&& !isload)
         {
             isload = true;
@@ -289,6 +290,8 @@ public class ModelItem : System.ICloneable
                     Debug.Log("  DownloadPath video  " + prefabModel.name);
                     Debug.Log("  DownloadPath video  " + Application.persistentDataPath + "/Material/" + Path.GetFileName(DownloadPath));
 
+                    prefabModel.GetComponent<TemplateVideo>().localSavePath = Application.persistentDataPath + "/Material/" + Path.GetFileName(DownloadPath);
+                    prefabModel.GetComponent<TemplateVideo>().autoplay = autoPlay;
                     // prefabModel.GetComponent<TemplateVideo>().SetData(HttpAction.baseurvideo + DownloadPath);
                     prefabModel.GetComponent<TemplateVideo>().SetData(Application.persistentDataPath + "/Material/" + Path.GetFileName(DownloadPath));
                     break;

+ 64 - 5
Assets/HotUpdate/ModelList.cs

@@ -6,7 +6,7 @@ using System.IO;
 using UnityEngine;
 using XRTool.Util;
 
-public class ModelList: System.ICloneable
+public class ModelList
 {
    public int id { get; set; }
     public bool select { get; set; }
@@ -293,6 +293,7 @@ public class ModelList: System.ICloneable
         List<ObjectValue> objects = new List<ObjectValue>();
         List<ModelItem> objs = material.materialList;
 
+    
         for (int i = 0; i < objs.Count; i++)
         {
             var mat = objs[i];
@@ -302,6 +303,7 @@ public class ModelList: System.ICloneable
                 case (int)MaterialType.None:
                     break;
                 case (int)MaterialType.Model:
+                    Debug.Log("添加模型===》");
                     var pModel = ResMgr.Instance.LoadAsync<GameObject>("Model");
                     yield return pModel;
                     go = GameObject.Instantiate(pModel.asset as GameObject, spoit.transform);        
@@ -311,6 +313,7 @@ public class ModelList: System.ICloneable
                     //modelitem.SetData(mat, material.updateTime);
                     break;
                 case (int)MaterialType.Text:
+                    Debug.Log("添加文字===》");
                     var pText = ResMgr.Instance.LoadAsync<GameObject>("Text");
                     yield return pText;
                     go = GameObject.Instantiate(pText.asset as GameObject, spoit.transform);                  
@@ -367,12 +370,12 @@ public class ModelList: System.ICloneable
                 ObjectValue objectValue = CreateMatObjectValue(i, material.id, go, mat);
                 objects.Add(objectValue);
                 mat.prefabModel = go;
-                callback.Invoke();
              //   mat.initFrist();
             }
-           
+
 
         }
+        callback.Invoke();
 
     }
 
@@ -470,10 +473,60 @@ public class ModelList: System.ICloneable
         return objectValue;
     }
 
-    public object Clone()
+    public ModelList Clone()
     {
+        ModelList mlist = new ModelList();
+        mlist.materialList = new List<ModelItem>();
+        for (int i = 0; i < materialList.Count; i++)
+        {
+            mlist.materialList.Add(new ModelItem());
+            mlist.materialList[i].autoPlay = autoplay;
+            mlist.materialList[i].abByte = materialList[i].abByte;
+            mlist.materialList[i].dmdown = materialList[i].dmdown;
+            mlist.materialList[i].DownloadPath = materialList[i].DownloadPath;
+            mlist.materialList[i].fileId = materialList[i].fileId;
+            mlist.materialList[i].id = materialList[i].id;
+            mlist.materialList[i].localSavePath = materialList[i].localSavePath;
+            mlist.materialList[i].modelList = materialList[i].modelList;
+            mlist.materialList[i].modelType = materialList[i].modelType;
+            mlist.materialList[i].name = materialList[i].name;
+            mlist.materialList[i].objectTransform = materialList[i].objectTransform;
+            mlist.materialList[i].prefabModel = materialList[i].prefabModel;
+            mlist.materialList[i].template = materialList[i].template;
+            mlist.materialList[i].TextBJ = materialList[i].TextBJ;
+            mlist.materialList[i].textContent = materialList[i].textContent;
+            mlist.materialList[i].textPosition = materialList[i].textPosition;
+            mlist.materialList[i].type = materialList[i].type;
+            mlist.materialList[i].uid = materialList[i].uid;
+            mlist.materialList[i].updateTime = materialList[i].updateTime;
+            mlist.materialList[i].url = materialList[i].url;
+            mlist.materialList[i].Version = materialList[i].Version;
+            mlist.materialList[i]._model = materialList[i]._model;
+        }
+        mlist.autoplay = autoplay;
+        mlist.describe = describe;
+        mlist.id = id;
+        mlist.iscreate = iscreate;
+        mlist.materalLibrary = materalLibrary;
+        mlist.name = name;
+        mlist.objectTransform = objectTransform;
+        mlist.select = select;
+        mlist.spotsItem = spotsItem;
+        mlist.type = type;
+        mlist.typesetting = typesetting;
+        mlist.updateTime = updateTime;
+        mlist._model = _model;
+        /*
         ModelList clonedObject = (ModelList)this.MemberwiseClone();
-        return clonedObject;
+        for (int i = 0; i < clonedObject.materialList.Count; i++)
+        {
+            materialList[i].isload = true;
+            Debug.Log("getdownloaditem=====>clonedObject" + materialList[i].isload + "_" + clonedObject.materialList[i].isload);
+            clonedObject.materialList[i].isload = false;
+            Debug.Log("getdownloaditem=====>clonedObject2" + materialList[i].isload + "_" + clonedObject.materialList[i].isload);
+
+        }*/
+        return mlist;
     }
 
     public void Clear()
@@ -509,12 +562,18 @@ public class ModelList: System.ICloneable
             {
                 _model.transform.localScale = getInfoScale();
             }
+            else
+            {
+
+                _model.transform.localScale = Vector3.one;
+            }
             if (materialList != null)
             {
                 for (int i = 0; i < materialList.Count; i++)
                 {
                     Debug.Log("initModelObj===> " + materialList[i].id);
                     materialList[i].initModelObj();
+
                 }
             }
 

+ 1 - 2
Assets/HotUpdate/ModelManager.cs

@@ -39,11 +39,10 @@ public class ModelManager : Singleton<ModelManager>
 
     private void AddDicModelList(string message)
     {
-       Debug.Log("AddDicModelList===>"+message);
+       Debug.Log("AddDicModelList=1==>"+message);
      if (!string.IsNullOrWhiteSpace(message))
         {
             Models = JsonConvert.DeserializeObject<List<ModelList>>(message);
-
             int len = Models.Count;
             for (int i = 0; i < len; i++)
             {

+ 58 - 50
Assets/HotUpdate/MoveChange.cs

@@ -100,66 +100,74 @@ public class MoveChange : MonoBehaviour
     public static bool islixian;
     public GameObject saomiao;
     void Update()
-    {
-        if (ARSpace.isFind)
-        {
-            if (!isCx)
-            {
-                saomiao.SetActive(false);
-                txtTip.SetActive(!islixian);
-                txtTip.GetComponent<ShowTipTime>().TimeFloat = 3;
-                txtTip.GetComponent<ShowTipTime>().t = 0;
-                txtTip.GetComponentInChildren<Text>().text = "空间定位成功";
-               // XRLocalizer.Instance.gameObject.SetActive(false);
-            }
-            isCx = true;
-            if (dingweidebug && XRLocalizer.Instance)
-            {
-                string sfdw = XRLocalizer.Instance.gameObject.activeSelf ? "定位开启" + XRLocalizer.Instance.stats.localizationSuccessCount + "/" + XRLocalizer.Instance.stats.localizationAttemptCount : "定位关闭";
-                dingweidebug.text = sfdw;
-            }
-        }
-        else
-        {
-
-
-            txtTip.SetActive(false);
-            saomiao.SetActive(true);
-           // txtTip.GetComponentInChildren<Text>().text = "请扫描周围环境以进行空间定位";
-        }
-        if (isDown && SetSceneActive.Instance.active&&!islixian)
-        {
-            if(!IsRot)
+    {
+
+        if (!UserInfo.Instance.is20)
+        {
+
+            if (ARSpace.isFind)
             {
-                goRefrence.transform.position = OpenXRCamera.Instance.head.position - TempVector3;
-                goRefrence.transform.position = new Vector3(goRefrence.transform.position.x, y, goRefrence.transform.position.z);
+                if (!isCx)
+                {
+                    saomiao.SetActive(false);
+                    txtTip.SetActive(!islixian);
+                    txtTip.GetComponent<ShowTipTime>().TimeFloat = 3;
+                    txtTip.GetComponent<ShowTipTime>().t = 0;
+                    txtTip.GetComponentInChildren<Text>().text = "空间定位成功";
+                   // XRLocalizer.Instance.gameObject.SetActive(false);
+                }
+                isCx = true;
+                if (dingweidebug && XRLocalizer.Instance)
+                {
+                    string sfdw = XRLocalizer.Instance.gameObject.activeSelf ? "定位开启" + XRLocalizer.Instance.stats.localizationSuccessCount + "/" + XRLocalizer.Instance.stats.localizationAttemptCount : "定位关闭";
+                    dingweidebug.text = sfdw;
+                }
             }
             else
+            {
+                    txtTip.SetActive(false);
+                    saomiao.SetActive(true);
+               // txtTip.GetComponentInChildren<Text>().text = "请扫描周围环境以进行空间定位";
+            }
+            if (isDown && SetSceneActive.Instance.active&&!islixian)
             {
-                if(DeviceType.type != "A01" && DeviceType.type != "Phone")
+                if(!IsRot)
                 {
-                    Debug.Log("正在旋轉======》");
-                    v3.y = ControllerTracker_Y - ControllerTracker.eulerAngles.y;
-                    goRefrence.transform.localEulerAngles += v3;
-                    ControllerTracker_Y = ControllerTracker.eulerAngles.y;
-
-                }else
+                    goRefrence.transform.position = OpenXRCamera.Instance.head.position - TempVector3;
+                    goRefrence.transform.position = new Vector3(goRefrence.transform.position.x, y, goRefrence.transform.position.z);
+                }
+                else
                 {
-                    goRefrence.transform.localEulerAngles = TempVector3Rot - ControllerTracker.eulerAngles;
-                    goRefrence.transform.localEulerAngles = new Vector3(0, goRefrence.transform.eulerAngles.y, 0);
+                    if(DeviceType.type != "A01" && DeviceType.type != "Phone")
+                    {
+                        Debug.Log("正在旋轉======》");
+                        v3.y = ControllerTracker_Y - ControllerTracker.eulerAngles.y;
+                        goRefrence.transform.localEulerAngles += v3;
+                        ControllerTracker_Y = ControllerTracker.eulerAngles.y;
+
+                    }else
+                    {
+                        goRefrence.transform.localEulerAngles = TempVector3Rot - ControllerTracker.eulerAngles;
+                        goRefrence.transform.localEulerAngles = new Vector3(0, goRefrence.transform.eulerAngles.y, 0);
+                    }
+                    /*
+                    goRefrence.transform.localEulerAngles = ControllerTracker.localEulerAngles - TempVector3;
+                    goRefrence.transform.localEulerAngles = new Vector3(0, goRefrence.transform.localEulerAngles.y, 0);
+                    */
                 }
-                /*
-                goRefrence.transform.localEulerAngles = ControllerTracker.localEulerAngles - TempVector3;
-                goRefrence.transform.localEulerAngles = new Vector3(0, goRefrence.transform.localEulerAngles.y, 0);
-                */
+                //moveGame.transform.eulerAngles = new Vector3(0, moveGame.transform.eulerAngles.y, 0);
             }
-            //moveGame.transform.eulerAngles = new Vector3(0, moveGame.transform.eulerAngles.y, 0);
+            if (Input.GetKeyDown(KeyCode.I))
+            {
+                ARSpace.isFind = true;
+            }
+            ControllerTracker_Y = ControllerTracker.eulerAngles.y;
         }
-        if (Input.GetKeyDown(KeyCode.I))
-        {
-            ARSpace.isFind = true;
+        else
+        {
+
+            //txtTip.SetActive(f);
         }
-        ControllerTracker_Y = ControllerTracker.eulerAngles.y;
     }
     private Vector3 v3 = Vector3.zero; // 用于存放手柄上次与下次的差值
     private float ControllerTracker_Y = 0; // 上次手柄的旋转Y值

+ 4 - 1
Assets/HotUpdate/MovieScreen.cs

@@ -17,7 +17,10 @@ public class MovieScreen : MonoBehaviour
 
         mRender = transform.Find("movie_logo").GetComponent<MeshRenderer>();
         mPlayer = mRender.GetComponent<VideoPlayer>();
-        mPlayer.clip = Resources.Load<VideoClip>("movie_ani/logo_movie_base");
+
+        UnityEngine.Object @object = ResMgr.Instance.Load("logo_movie_base");
+        VideoClip gameObject = UnityEngine.Object.Instantiate<VideoClip>(@object as VideoClip);
+        mPlayer.clip = gameObject;// Resources.Load<VideoClip>("movie_ani/logo_movie_base");
         mRender.gameObject.SetActive(false);
         mRender.gameObject.SetActive(true);
         mPlayer.Play();

+ 3 - 1
Assets/HotUpdate/MultiPlayerManager.cs

@@ -54,7 +54,9 @@ public class MultiPlayerManager : MonoSingleton<MultiPlayerManager>
         {
             Debug.LogError("DGJ   ====>  " + uid);
             // 创建 
-            GameObject player =  GameObject.Instantiate(Resources.Load<GameObject>("Template/Prefab/Player"));
+            UnityEngine.Object @object = ResMgr.Instance.Load("Player");
+            GameObject gameObject = UnityEngine.Object.Instantiate<GameObject>(@object as GameObject);
+            GameObject player =  GameObject.Instantiate(gameObject);
             SynchronizationObject SyncPlayer = player.GetComponent<SynchronizationObject>();
             player.transform.SetParent(GameManager.Instance.Player.transform.parent);
             SyncPlayer.uid = uid;

+ 12 - 5
Assets/HotUpdate/Patch_VideoController.cs

@@ -34,9 +34,11 @@ public class Patch_VideoController : AbstractController
 
     private Toggle toggle;
     private void Update()
-    {
-        if(toggle&&!UserInfo.Instance.is20)
-        {
+    {
+     //   Debug.Log("GameManager.m_IsStart20Editor Update");
+        if (toggle&&!UserInfo.Instance.is20)
+        {
+          //  Debug.Log("GameManager.m_IsStart20Editor !is20");
             if (!toggle.isOn)
             {
                 if (manipulationHandler != null)
@@ -62,12 +64,15 @@ public class Patch_VideoController : AbstractController
                 }
                 if (boundingBox == null)
                 {
+                    
                     boundingBox = gameObject.AddComponent<BoundingBox>();
                     boundingBox.FlattenAxis = FlattenModeType.FlattenZ;
                     boundingBox.ActiveHandle = HandleType.Rotation | HandleType.Scale;
                 }else
                 {
                     boundingBox.enabled = true;
+                    if (transform.Find("BoundingBox") && transform.Find("BoundingBox").gameObject != null)
+                        transform.Find("BoundingBox").gameObject.SetActive(true);
                 }
 
 
@@ -80,10 +85,12 @@ public class Patch_VideoController : AbstractController
             }
 
         }else if(UserInfo.Instance.is20)
-        {
-
+        {
+
+            Debug.Log("GameManager.m_IsStart20Editor !GameManager.m_IsStart20Editor");
             if (!GameManager.m_IsStart20Editor)
             {
+                Debug.Log("GameManager.m_IsStart20Editor");
                 if (manipulationHandler != null)
                     manipulationHandler.enabled = false;
                 if (boundingBox != null)

+ 4 - 0
Assets/HotUpdate/ResMgr.cs

@@ -53,7 +53,11 @@ public class ResMgr : MonoBehaviour
     public ResourceRequest LoadAsync<T>(string assetName) where T : UnityEngine.Object
     {
 
+#if UNITY_EDITOR
         return Resources.LoadAsync<T>(assetName);
+#else
+        return GameInit.ablist.LoadAssetAsync<T>(assetName);
+#endif
     }
     public void LoadAsync(string assetName, ResMgr.LoadAyncCallback callback)
     {

+ 3 - 3
Assets/HotUpdate/SRSectorLayout.cs

@@ -164,7 +164,7 @@ public class SRSectorLayout : MonoBehaviour
                 case (int)MaterialType.None:
                     break;
                 case (int)MaterialType.Image:
-                    var pImage = ResMgr.Instance.LoadAsync<GameObject>("Template/Prefab/Image");
+                    var pImage = ResMgr.Instance.LoadAsync<GameObject>("Image");
                     yield return pImage;
                     go = Instantiate(pImage.asset  as  GameObject, par.transform);
                     var imageitem = go.AddComponent<TemplateImage>();
@@ -173,7 +173,7 @@ public class SRSectorLayout : MonoBehaviour
                     noText.Add(imageitem);
                     break;
                 case (int)MaterialType.Video:
-                    var pVideo = ResMgr.Instance.LoadAsync<GameObject>("Template/Prefab/Video");
+                    var pVideo = ResMgr.Instance.LoadAsync<GameObject>("Video");
                     yield return pVideo;
                     go = Instantiate(pVideo.asset as GameObject, par.transform);
                     var videoitem = go.AddComponent<TemplateVideo>();
@@ -184,7 +184,7 @@ public class SRSectorLayout : MonoBehaviour
                     break;
                 case (int)MaterialType.Text:
                     textmat = mat;
-                    var pText = ResMgr.Instance.LoadAsync<GameObject>("Template/Prefab/Text");
+                    var pText = ResMgr.Instance.LoadAsync<GameObject>("Text");
                     yield return pText;
                     go = Instantiate(pText.asset as GameObject, par.transform);
                     var textitem = go.AddComponent<TemplateText>();

+ 6 - 4
Assets/HotUpdate/SavePanel.cs

@@ -36,8 +36,9 @@ public class SavePanel : AbstractController
             txtTip.SetActive(true);
             txtTip.GetComponentInChildren<Text>().text = "如需移动场景,请按住手柄拖动场景并走动\n场景将跟随您的脚步进行整体移动";
         }
-        this.gameObject.SetActive(b);
-        parentObj.SetActive(!b);
+       this.gameObject.SetActive(b);
+       // GameManager.Instance.
+       parentObj.SetActive(!b);
     }
 
    // private string URL = "https://api-fat3.ghz-tech.com/mr-navigator/v1/project/createposition";
@@ -67,6 +68,7 @@ public class SavePanel : AbstractController
         posRotlist[1].z = 0;
         string jsonString = JsonConvert.SerializeObject(posRotlist);
         this.SendCommand(new PointPosRotUploadCommand(HttpSDKAction.Instance.loginUrl+ "/project/createPosition", jsonString));
+        Invoke("setIsOn", 0.1f);
     }
     void setIsOn()
     {
@@ -76,8 +78,8 @@ public class SavePanel : AbstractController
     {
         meshTest.transform.parent = aRSpaceForAll;
 
-        this.gameObject.SetActive(false);
-        parentObj.SetActive(true);
+       // this.gameObject.SetActive(false);
+       // parentObj.SetActive(true);
         Invoke("setIsOn", 0.1f);
     }
 

+ 11 - 2
Assets/HotUpdate/SceneChoose.cs

@@ -321,7 +321,7 @@ public class SceneChoose : BaseUI
         Hide();
         
     }
-
+    public RectTransform scrollview;
     private void UpdateSceneItem()
     {
         Debug.Log("UpdateSceneItem1");
@@ -337,7 +337,7 @@ public class SceneChoose : BaseUI
             var obj = Instantiate(m_SceneItem);
             Debug.Log("UpdateSceneItem22");
             obj.transform.SetParent(m_ScenePanel);
-            var item = obj.AddComponent<SChooseItem>();
+            var item = obj.GetComponent<SChooseItem>();
             obj.gameObject.SetActive(true);
             obj.transform.localScale = new Vector3(1, 1, 1);
             obj.transform.localEulerAngles = Vector3.zero;
@@ -346,6 +346,15 @@ public class SceneChoose : BaseUI
             item.SceneData = m_SceneData[i];
             m_Items.Add(item);
         }
+        switch(m_SceneData.Count)
+        {
+            case 1:
+                scrollview.sizeDelta = new Vector2(200,266);
+                break;
+            case 2:
+                scrollview.sizeDelta = new Vector2(500, 266);
+                break;
+        }
         Debug.Log("UpdateSceneItem3");
         if (m_CarImage == null)
         {

+ 1 - 0
Assets/HotUpdate/SettingPanel.cs

@@ -41,6 +41,7 @@ public class SettingPanel : AbstractController
         LuJIng.onValueChanged.AddListener(OnLuJIngValueChange);
         DingWei.onValueChanged.AddListener(DingWeiValueChange);
         setMsg(null);
+
     }
 
     private void DingWeiValueChange(bool arg0)

+ 1 - 1
Assets/HotUpdate/ShowTipTime.cs

@@ -7,7 +7,7 @@ public class ShowTipTime : MonoBehaviour
     public static ShowTipTime Instance;
     public float TimeFloat = 10;
     // Start is called before the first frame update
-    void Start()
+    void Awake()
     {
         Instance = this;
     }

+ 1 - 0
Assets/HotUpdate/SpotsItem.cs

@@ -133,6 +133,7 @@ public class SpotsItem
                     i._model = SpotsObj;
                     i.initModelObj();
                 }
+                isInitModel = true;
                 /*
                 if (!isInitModel)
                 {

+ 28 - 23
Assets/HotUpdate/TemplateImage.cs

@@ -52,7 +52,7 @@ public class TemplateImage : BaseTemPlate
         HideCollider();
     }
 
-    public override void SetData(MaterialObjValue value, int updateTime)
+    public override void SetData(MaterialObjValue value, long updateTime)
     {
         base.SetData(value, updateTime);
         if (!GameManager.Instance.IsRuning)
@@ -68,7 +68,7 @@ public class TemplateImage : BaseTemPlate
         DownLoadMaterial data = new DownLoadMaterial();
         data.downLoadPath = value.DownloadPath;
         data.localLoadPath = Application.persistentDataPath + "/Material/" + Path.GetFileName(value.DownloadPath);
-        data.updataTime = GameManager.Instance.m_SceneValue.updateTime;
+        data.updataTime = updateTime;//GameManager.Instance.m_SceneValue.updateTime;
         data.type = "1";
         MsgHandler.AddListener(data.downLoadPath, HandleMsg);
         DownloadResManager.Instance.DownLoad(data);
@@ -83,33 +83,38 @@ public class TemplateImage : BaseTemPlate
             Texture2D texture = new Texture2D(1, 1);
 
             OpenCVForUnity.CoreModule.Mat _mat = null;
-            GameManager.Instance.AddThead(() =>
+
+            Loom.RunAsync(() =>
             {
                 Debug.Log("加載完成222222222222222222");
-                _mat =GameManager.zoomByteByOpenCV((byte[])msg.Value);
+                _mat = GameManager.zoomByteByOpenCV((byte[])msg.Value);
 
-            }, () =>
-            {
-                Debug.Log("加載完成111111111111");
-                texture = GameManager.TextureByMat(_mat);
-                Sprite sprite = Sprite.Create(texture, new UnityEngine.Rect(0, 0, texture.width, texture.height), Vector2.one * 0.5f);
-                m_Image.sprite = sprite;
-                _mat.release();
-                _mat = null;
+                Debug.Log("1111111");
+                Loom.QueueOnMainThread(() =>
+                {
 
-                Texture2D tex = transform.Find("Canvas/Image").GetComponent<Image>().sprite.texture;
+                    Debug.Log("加載完成111111111111");
+                    texture = GameManager.TextureByMat(_mat);
+                    Sprite sprite = Sprite.Create(texture, new UnityEngine.Rect(0, 0, texture.width, texture.height), Vector2.one * 0.5f);
+                    m_Image.sprite = sprite;
+                    _mat.release();
+                    _mat = null;
 
+                    Texture2D tex = transform.Find("Canvas/Image").GetComponent<Image>().sprite.texture;
 
-                if (tex.height > tex.width)
-                {
-                    float bl = ((float)tex.height / (float)tex.width);
-                    transform.Find("Canvas").GetComponent<RectTransform>().sizeDelta = new Vector2(500 / bl, 500);
-                }
-                else
-                {
-                    float bl = ((float)tex.width / (float)tex.height);
-                    transform.Find("Canvas").GetComponent<RectTransform>().sizeDelta = new Vector2(500, 500 / bl);
-                }
+
+                    if (tex.height > tex.width)
+                    {
+                        float bl = ((float)tex.height / (float)tex.width);
+                        transform.Find("Canvas").GetComponent<RectTransform>().sizeDelta = new Vector2(500 / bl, 500);
+                    }
+                    else
+                    {
+                        float bl = ((float)tex.width / (float)tex.height);
+                        transform.Find("Canvas").GetComponent<RectTransform>().sizeDelta = new Vector2(500, 500 / bl);
+                    }
+
+                });
             });
 
          //   texture.LoadImage((byte[])msg.Value);

+ 306 - 129
Assets/HotUpdate/TemplateModel.cs

@@ -4,10 +4,15 @@ using System.Collections;
 using System.Collections.Generic;
 using System.IO;
 using System.IO.Compression;
+using System.Linq;
 using System.Reflection;
 using TriLibCore;
 using TriLibCore.Extensions;
+using TriLibCore.Mappers;
+using TriLibCore.Samples;
+using TriLibCore.Utils;
 using UnityEngine;
+using UnityEngine.Rendering;
 
 public class TemplateModel : BaseTemPlate
 {
@@ -27,15 +32,15 @@ public class TemplateModel : BaseTemPlate
         {
             if (m_ModelObj && m_ModelObj.GetComponent<Animation>())
             {
-                Debug.Log("Animation===>1"+ m_ModelObj.name);
+                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<AudioSource>())
-        this.gameObject.GetComponent<AudioSource>().Play();
+        if (this.gameObject.GetComponent<AudioSource>())
+            this.gameObject.GetComponent<AudioSource>().Play();
     }
 
     private IEnumerator LoadModel()
@@ -44,7 +49,7 @@ public class TemplateModel : BaseTemPlate
         if (GameManager.Instance.IsRuning && m_ModelObj == null)
         {
             //Debug.Log(Data.name);
-            Debug.Log("DGJ ==>>   "+Data.localLoadPath);
+            Debug.Log("DGJ ==>>   " + Data.localLoadPath);
             var ab = AssetBundle.LoadFromFileAsync(Data.localLoadPath);
             yield return ab;
             if (ab == null)
@@ -75,15 +80,15 @@ public class TemplateModel : BaseTemPlate
                         {
                             Debug.LogError(" GHZ_OOBE_230721  物体加载失败,请查看是否导入相关Packages ");
                             obj = new GameObject();
-                          
+
                         }
-                        m_ModelObj = GameObject.Instantiate(obj,transform);
+                        m_ModelObj = GameObject.Instantiate(obj, transform);
                         m_ModelObj.name = "GongYe";
 
-                        if (GameObject.Find("AudioManager") ==null)
+                        if (GameObject.Find("AudioManager") == null)
                         {
                             GameObject audio = Resources.Load<GameObject>("AudioManager");
-                            if(audio ==null)
+                            if (audio == null)
                             {
                                 Debug.LogError("  GHZ_OOBE_230721 Packages内AudioManager组件丢失");
                                 audio = new GameObject();
@@ -102,7 +107,7 @@ public class TemplateModel : BaseTemPlate
                         break;
                 }
 
-              
+
 
                 //if (ab.LoadAllAssets<GameObject>()[0].name == "MRVideo")
                 //m_ModelObj.AddComponent<MovieScreen>();
@@ -114,7 +119,7 @@ public class TemplateModel : BaseTemPlate
                 ab.assetBundle.Unload(false);
                 HideCollider();
             }
-          
+
 
 
 
@@ -129,7 +134,7 @@ public class TemplateModel : BaseTemPlate
     }
     public void LoadModel(AssetBundle ab)
     {
-      GameManager.Instance.StartCoroutine(LoadABModel(ab));
+        GameManager.Instance.StartCoroutine(LoadABModel(ab));
         //LoadABModel(ab);
     }
     private IEnumerator LoadABModel(AssetBundle ab)
@@ -189,7 +194,7 @@ public class TemplateModel : BaseTemPlate
 
             gameObject.AddComponent<ManipulationHandler>();
             gameObject.AddComponent<BoundingBox>();
-           // yield return new WaitForSeconds(0.3f);
+            // yield return new WaitForSeconds(0.3f);
             ab.Unload(false);
             HideCollider();
             ModelItem.isLoad = false;
@@ -201,25 +206,26 @@ public class TemplateModel : BaseTemPlate
         base.OnAwake();
     }
 
-    public override void SetData(MaterialObjValue value, int updateTime)
+    public override void SetData(MaterialObjValue value, long updateTime)
     {
-       
+
         base.SetData(value, updateTime);
         //if (gameObject.GetComponent<Collider>() != null)
         //{
         //    Destroy(gameObject.GetComponent<Collider>());
         //}
         //下载列表中加入数据
-        if (!GameManager.Instance.IsRuning|| Data == null)
+        if (!GameManager.Instance.IsRuning || Data == null)
         {
             //   DownloadManager.Instance.AddDownloadData(Data);
 
 
             DownLoadMaterial data = new DownLoadMaterial();
             this.Data = data;
+            data.name = value.name;
             data.downLoadPath = value.DownloadPath;
             data.localLoadPath = Application.persistentDataPath + "/Material/" + Path.GetFileName(value.DownloadPath);
-            data.updataTime = GameManager.Instance.m_SceneValue.updateTime;
+            data.updataTime = updateTime;//GameManager.Instance.m_SceneValue.updateTime;
             data.type = "3";
             MsgHandler.AddListener(value.DownloadPath, HandleMsg);
             DownloadResManager.Instance.DownLoad(data);
@@ -253,14 +259,14 @@ public class TemplateModel : BaseTemPlate
             //}
 
         }
-       
+
     }
 
     private void HandleMsg(Msg msg)
     {
         Debug.Log("DGJ   TemplateModel ");
 
-        if(msg.Value!=null)
+        if (msg.Value != null)
         {
             if (IsAB())
                 LoadABModel();
@@ -284,8 +290,8 @@ public class TemplateModel : BaseTemPlate
         bool finish = false;
 
         string fileName = Path.GetFileName(Data.localLoadPath);
-        Debug.Log("HJJ   fileName===>"+ fileName);
-        if(fileName.Contains(".ghb") ||!fileName.Contains("."))
+        Debug.Log("HJJ   fileName===>" + fileName);
+        if (fileName.Contains(".ghb") || !fileName.Contains("."))
         {
             finish = true;
         }
@@ -295,20 +301,128 @@ public class TemplateModel : BaseTemPlate
 
     private void LoadABModel()
     {
-        AssetBundle ab = AssetBundle.LoadFromFile(Data.localLoadPath);
-        if (ab == null)
+
+        GameManager.Instance.StartCoroutine(LoadABModelNew());
+        /**/
+    }
+  public  static Dictionary<string, GameObject> loadPathstatic = new Dictionary<string, GameObject>();
+    public static Dictionary<string, bool> loadPathstaticbool = new Dictionary<string, bool>();
+    public static Dictionary<string, string> loadPathstaticstr = new Dictionary<string, string>();
+    private IEnumerator LoadABModelNew()
+    {
+        /*
+        AssetBundleCreateRequest ab = AssetBundle.LoadFromFileAsync(Data.localLoadPath);
+        yield return ab;
+        if (ab.assetBundle == null)
         {
             Debug.Log("Failed to load AssetBundle!");
-            return;
+            yield return null;
+        }
+        else
+        {
+            AssetBundleRequest golist = ab.assetBundle.LoadAllAssetsAsync<GameObject>();
+            yield return golist;
+
+            AssetBundleRequest assetrequest = ab.assetBundle.LoadAssetAsync<GameObject>(golist.allAssets[0].name);
+            yield return assetrequest;
+            GameObject prefab = (GameObject)assetrequest.asset;
+            m_ModelObj = Instantiate(prefab, transform);
+            ab.assetBundle.Unload(false);
+
+            ManipulationHandler manipulation = gameObject.AddComponent<ManipulationHandler>();
+            manipulation.enabled = false;
+            BoundingBox boundingBox = gameObject.AddComponent<BoundingBox>();
+            boundingBox.enabled = false;
+
+        }*/
+
+        Debug.Log("ghb加载===》" + Data.localLoadPath);
+
+
+        if (loadPathstaticbool.ContainsKey(Data.localLoadPath))
+        {
+            bool isload = false;
+            while (!isload)
+            {
+                var allab = AssetBundle.GetAllLoadedAssetBundles();
+                yield return allab;
+                foreach (var a in allab)
+                {
+                    if (loadPathstatic.ContainsKey(a.name))
+                    {
+                        GameObject prefab = (GameObject)loadPathstatic[a.name];
+                        m_ModelObj = Instantiate(prefab, transform);
+                        m_ModelObj.SetActive(true);
+                        //Destroy(prefab);
+                        ManipulationHandler manipulation = gameObject.AddComponent<ManipulationHandler>();
+                        manipulation.enabled = false;
+                        BoundingBox boundingBox = gameObject.AddComponent<BoundingBox>();
+                        boundingBox.enabled = false;
+                        isload = true;
+                    }
+                }
+
+                yield return null;
+            }
+            yield return null;
+        }
+        else
+        {
+            loadPathstaticbool.Add(Data.localLoadPath,true);
+            AssetBundleCreateRequest ab=null;
+                ab = AssetBundle.LoadFromFileAsync(Data.localLoadPath);
+                yield return ab;
+                if (ab.assetBundle == null)
+                {
+                    bool isload = false;
+                    while (!isload)
+                    {
+                        var allab = AssetBundle.GetAllLoadedAssetBundles();
+                        yield return allab;
+                        foreach (var a in allab)
+                        {
+                            if (loadPathstatic.ContainsKey(a.name))
+                            {
+                                GameObject prefab = (GameObject)loadPathstatic[a.name];
+                                m_ModelObj = Instantiate(prefab, transform);
+                                m_ModelObj.SetActive(true);
+                                //Destroy(prefab);
+                                ManipulationHandler manipulation = gameObject.AddComponent<ManipulationHandler>();
+                                manipulation.enabled = false;
+                                BoundingBox boundingBox = gameObject.AddComponent<BoundingBox>();
+                                boundingBox.enabled = false;
+                                isload = true;
+                            }
+                        }
+
+                        yield return null;
+                    }
+                    yield return null;
+                }
+                else
+            {
+                loadPathstaticstr.Add(Data.localLoadPath, ab.assetBundle.name);
+                AssetBundleRequest golist = ab.assetBundle.LoadAllAssetsAsync<GameObject>();
+                    yield return golist;
+                    Debug.Log("ghb加载==1=》" + golist.allAssets[0].name);
+                    AssetBundleRequest assetrequest = ab.assetBundle.LoadAssetAsync<GameObject>(golist.allAssets[0].name);
+                    yield return assetrequest;
+                    Debug.Log("ghb加载===2》" + (assetrequest.asset.name));
+                    loadPathstatic.Add(ab.assetBundle.name, (GameObject)assetrequest.asset);
+                    GameObject prefab = (GameObject)assetrequest.asset;
+                    m_ModelObj = Instantiate(prefab, transform);
+                    GameObject prefabasset = (GameObject)assetrequest.asset;
+                    prefabasset.SetActive(false);
+                    loadPathstatic.Add(ab.assetBundle.name, prefabasset);
+                  //  ab.assetBundle.Unload(true);
+
+                    ManipulationHandler manipulation = gameObject.AddComponent<ManipulationHandler>();
+                    manipulation.enabled = false;
+                    BoundingBox boundingBox = gameObject.AddComponent<BoundingBox>();
+                    boundingBox.enabled = false;
+
+                }
         }
-        var prefab = ab.LoadAsset<GameObject>(ab.LoadAllAssets<GameObject>()[0].name);
-        m_ModelObj = Instantiate(prefab, transform);
-        ab.Unload(false);
-
-        ManipulationHandler manipulation = gameObject.AddComponent<ManipulationHandler>();
-        manipulation.enabled = false;
-        BoundingBox boundingBox = gameObject.AddComponent<BoundingBox>();
-        boundingBox.enabled = false;
     }
     /// <summary>
     /// 解压
@@ -317,7 +431,6 @@ public class TemplateModel : BaseTemPlate
     /// <param name="extractPath">解压路径</param>
     public bool ExtractZipFile(string zipFilePath)
     {
-        bool isAB=false;
         if(!zipFilePath.Contains(".zip"))
         {
             return false;
@@ -325,71 +438,21 @@ public class TemplateModel : BaseTemPlate
         Debug.Log("ExtractZipFile===>1");
         using (ZipArchive archive = ZipFile.OpenRead(zipFilePath))
         {
-                byte[] ghbbytes = null;
-                Debug.Log("ExtractZipFile===>2");
-                foreach (ZipArchiveEntry entry in archive.Entries)
+            foreach (ZipArchiveEntry entry in archive.Entries)
+            {
+                Debug.Log("ExtractZipFile==FullName=>2" + entry.FullName);
+                if (entry.FullName.Contains("GHZPointCloud"))
                 {
-                    Debug.Log("ExtractZipFile==FullName=>2" + entry.FullName);
-                    if (entry.FullName.Contains(".ghb") || !entry.FullName.Contains("."))
-                    {
-                        isAB = true;
-                        if (entry.Name != "")
-                        {
-                            entry.ExtractToFile(Application.persistentDataPath+"/"+ entry.FullName,true);
-                            FileInfo finfo = new FileInfo(Application.persistentDataPath + "/" + entry.FullName);
-                            byte[] bytes= readbytes(finfo.OpenRead());
-                            if (!entry.FullName.Contains(".bytes"))
-                            {
-                                ghbbytes = 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;
-                }
-                }
+                    return true;
 
-                if(isAB)
-                {
-                    Debug.Log("ExtractZipFile===>3");
-                    if (ghbbytes!=null)
-                    {
-                        Debug.Log("ExtractZipFile===>5");
-                        AssetBundle ab = AssetBundle.LoadFromMemory(ghbbytes);
-                        var prefab = ab.LoadAsset<GameObject>(ab.LoadAllAssets<GameObject>()[0].name);
-                        m_ModelObj = Instantiate(prefab, transform);
-                        ab.Unload(false);
-
-                        ManipulationHandler manipulation = gameObject.AddComponent<ManipulationHandler>();
-                        manipulation.enabled = false;
-                        BoundingBox boundingBox = gameObject.AddComponent<BoundingBox>();
-                        boundingBox.enabled = false;
-                    }
                 }
+            }
 
-   
 
-            return isAB;
         }
+        return false;
     }
 
     public static float[] bytesToFloat(byte[] byteArray)//byte[]数组转化为AudioClip可读取的float[]类型
@@ -432,73 +495,187 @@ public class TemplateModel : BaseTemPlate
             return;
         }
 
-        Debug.Log("模型加载完成TriLibModel" + Data.localLoadPath);
+        Debug.Log("模型加载完成TriLibModel" + Data.downLoadPath);
 
-        if (false)//ExtractZipFile(Data.localLoadPath)
+        if (false)//
         {
 
         }
         else
         {
+            AssetLoaderOptions AssetLoaderOptions = AssetLoader.CreateDefaultLoaderOptions();
+            if (ExtractZipFile(Data.localLoadPath)) 
+            {
+                AssetLoaderOptions.LoadPointClouds = true;
+            }
+            else
+            {
+                AssetLoaderOptions.LoadPointClouds = false;
+            }
 
-            Debug.Log("模型加载完成TriLibModel" + Data.localLoadPath);
-
-            try
+                AssetLoaderOptions.TextureMappers = new TextureMapper[] { ScriptableObject.CreateInstance<FilePickerTextureMapper>() };
+           
+            if (!(AssetLoaderOptions.ExternalDataMapper is FilePickerExternalDataMapper))
+            {
+                AssetLoaderOptions.ExternalDataMapper = ScriptableObject.CreateInstance<FilePickerExternalDataMapper>();
+            }
+            if (AssetLoaderOptions.LoadPointClouds)
             {
+                Debug.Log("模型加载完成TriLibModel" + AssetLoaderOptions.LoadPointClouds);
+            AssetLoader.LoadModelFromFile(Data.localLoadPath, (AssetLoaderContext ac) => {
 
-                TriLibModelLoad.Load(Data.localLoadPath, (AssetLoaderContext ac) => {
                     Debug.Log("模型加载完成");
+            }, (AssetLoaderContext ac) => {
+                Debug.Log("载材质加完成");
+                HandlePointClouds(ac);
+                //  ac.RootGameObject.transform.position = Camera.main.transform.forward;
+                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("加载中==》" + f);
+            }, (IContextualizedError error) => {
+
+                Debug.Log("加载失败" + error);
+            }, null, AssetLoaderOptions);
+
+            }
+            else
+            {
+
+            try
+            {
+                TriLibLocalLoad.Load(Data.localLoadPath, (AssetLoaderContext ac) => {
+                
                 }, (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);
+                        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;
+                        if(bizhi==float.NaN || bizhi == float.PositiveInfinity || bizhi == float.NegativeInfinity)
+                        { bizhi = 1; }
+
+                        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);
+                        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;
-                    }
+                            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("加载中==》" + f);
                 }, (IContextualizedError error) => {
 
                     Debug.Log("加载失败" + error);
-                });
+                },null, AssetLoaderOptions);
             }
             catch
             {
                 Debug.Log("加载失败" + Data.localLoadPath);
+                }
+            }
+        }
+    }
+    /// <summary>Handles Point Clouds rendering.</summary>
+    /// <param name="assetLoaderContext">The Asset Loader Context reference. Asset Loader Context contains the Model loading data.</param>
+    private void HandlePointClouds(AssetLoaderContext assetLoaderContext)
+    {
+        Material material = null;
+        foreach (var gameObject in assetLoaderContext.GameObjects.Values)
+        {
+            m_ModelObj = Instantiate(gameObject, transform);
+            if (m_ModelObj.TryGetComponent<MeshFilter>(out var meshFilter))
+            {
+                var points = meshFilter.sharedMesh.vertices;
+                var colors = meshFilter.sharedMesh.colors32;
+                if (colors == null || colors.Length != points.Length)
+                {
+                    colors = new Color32[points.Length];
+                    for (var i = 0; i < colors.Length; i++)
+                    {
+                        colors[i] = Color.white;
+                    }
+                }
+                if (SystemInfo.graphicsDeviceType != GraphicsDeviceType.Direct3D11 && SystemInfo.graphicsDeviceType != GraphicsDeviceType.Direct3D12)
+                {
+                    UnityEngine.Debug.Log("graphicsDeviceTypegraphicsDeviceTypegraphicsDeviceType" + SystemInfo.graphicsDeviceType);
+                    var mesh = new Mesh();
+                    mesh.indexFormat = IndexFormat.UInt32;
+                    mesh.SetVertices(points);
+                    mesh.SetColors(colors);
+                    mesh.SetIndices(
+                        Enumerable.Range(0, points.Length).ToArray(),
+                        MeshTopology.Points, 0
+                    );
+                    mesh.UploadMeshData(!assetLoaderContext.Options.ReadEnabled);
+                    meshFilter.sharedMesh = mesh;
+                    var meshRenderer = m_ModelObj.AddComponent<MeshRenderer>();
+                    var materials = new Material[meshFilter.sharedMesh.subMeshCount];
+                    if (material == null)
+                    {
+                        material = new Material(Shader.Find("Hidden/PointCloud_GL"));
+                    }
+                    for (var i = 0; i < materials.Length; i++)
+                    {
+                        materials[i] = material;
+                    }
+                    meshRenderer.materials = materials;
+                }
+                else
+                {
+                    var pointCloudRenderer = m_ModelObj.AddComponent<PointCloudRenderer>();
+                    var data = ScriptableObject.CreateInstance<PointCloudData>();
+                    data.Initialize(points, colors);
+                    pointCloudRenderer.sourceData = data;
+                    pointCloudRenderer.destroyData = true;
+                    pointCloudRenderer.pointSize = 0.01f;
+                    assetLoaderContext.Allocations.Add(data);
+                }
             }
         }
     }
-
     public override void HideCollider()
     {
         base.HideCollider();

+ 3 - 2
Assets/HotUpdate/TemplateText.cs

@@ -56,12 +56,13 @@ public class TemplateText : BaseTemPlate
         m_Text = transform.Find("Canvas/Text").GetComponent<Text>();
         HideCollider();
     }
-    private void Update()
+    public override void Update()
     {
         CanvasHeight = m_Text.GetComponent<RectTransform>().sizeDelta.y + 60;
+        base.Update();
     }
 
-    public override void SetData(MaterialObjValue value, int updateTime)
+    public override void SetData(MaterialObjValue value, long updateTime)
     {
         Debug.Log("Text +++++" + value.TextBJ);
         Debug.Log("Text +++++" + value.textContent);

+ 15 - 5
Assets/HotUpdate/TemplateVideo.cs

@@ -57,7 +57,7 @@ public class TemplateVideo : BaseTemPlate
         GameManager.Instance.text.text += localSavePath + "\n";
         if (autoplay)
         {
-            Debug.Log("HJJ    ��ʼ�Զ�����" + localSavePath);
+            Debug.Log("HJJ    OnEnable autoplay1" + localSavePath);
             StartCoroutine(ADDAutoPlay());
             //   m_Video.transform.GetComponent<VideoPlayBtn>().m_IsPlaying = false;
             //   m_Video.transform.GetComponent<VideoPlayBtn>().PlayVideo();
@@ -66,7 +66,7 @@ public class TemplateVideo : BaseTemPlate
         else
         {
 
-            Debug.Log("HJJ    ����Ҫ�ԄӲ���" + localSavePath);
+            Debug.Log("HJJ    OnEnable autoplay2" + localSavePath);
         }
         setScale = true;
     }
@@ -74,7 +74,7 @@ public class TemplateVideo : BaseTemPlate
     IEnumerator ADDAutoPlay()
     {
         yield return new WaitForSeconds(0.3f);
-        Debug.Log("HJJ    ��ʼ�Զ����ż��딵�M" + localSavePath);
+        Debug.Log("HJJ    OnEnable" + localSavePath);
         temQueue.Enqueue(this);
     }
 
@@ -126,7 +126,7 @@ public class TemplateVideo : BaseTemPlate
             setScale = false;
         }
     }
-    public override void SetData(MaterialObjValue value, int updateTime)
+    public override void SetData(MaterialObjValue value, long updateTime)
     {
         base.SetData(value, updateTime);
         if (!GameManager.Instance.IsRuning|| Data == null)
@@ -136,7 +136,7 @@ public class TemplateVideo : BaseTemPlate
             DownLoadMaterial data = new DownLoadMaterial();
             data.downLoadPath = value.DownloadPath;
             data.localLoadPath = Application.persistentDataPath + "/Material/" + Path.GetFileName(value.DownloadPath);
-            data.updataTime = GameManager.Instance.m_SceneValue.updateTime;
+            data.updataTime = updateTime;
             data.type = "3";
             MsgHandler.AddListener(value.DownloadPath, HandleMsg);
             DownloadResManager.Instance.DownLoad(data);
@@ -171,6 +171,16 @@ public class TemplateVideo : BaseTemPlate
             m_Video = transform.Find("Screen/AVideo").GetComponent<AVProVideoPlayer>();
         m_Video.SetUrl(localSavePath);
 
+        if (UserInfo.Instance.is20)
+        {
+            if (autoplay)
+            {
+                Debug.Log("HJJ    OnEnable autoplay1" + localSavePath);
+                StartCoroutine(ADDAutoPlay());
+
+            }
+        }
+
     }
 
     private void HandleMsg(Msg msg)

+ 87 - 0
Assets/HotUpdate/TriLibLocalLoad.cs

@@ -0,0 +1,87 @@
+
+
+using System;
+using TriLibCore;
+using TriLibCore.Utils;
+using UnityEngine;
+
+public class TriLibLocalLoad
+{
+
+    /// <summary>
+    /// Creates the AssetLoaderOptions instance, configures the Web Request, and downloads the Model.
+    /// </summary>
+    /// <remarks>
+    /// You can create the AssetLoaderOptions by right clicking on the Assets Explorer and selecting "TriLib->Create->AssetLoaderOptions->Pre-Built AssetLoaderOptions".
+    /// </remarks>
+    public static void Load(string ModelURL, Action<AssetLoaderContext> OnLoad, Action<AssetLoaderContext> OnMaterialsLoad, Action<AssetLoaderContext, float> OnProgress, Action<IContextualizedError> OnError, GameObject go = null, AssetLoaderOptions assetLoaderOptions=null)
+    {
+        if (ModelURL.Contains("http"))
+        {
+            loadUrl(ModelURL, OnLoad, OnMaterialsLoad, OnProgress, OnError, go, assetLoaderOptions);
+        }
+        else
+        {
+            loadFile(ModelURL, OnLoad, OnMaterialsLoad, OnProgress, OnError, go, assetLoaderOptions);
+        }
+
+    }
+    static void loadUrl(string ModelURL, Action<AssetLoaderContext> OnLoad, Action<AssetLoaderContext> OnMaterialsLoad, Action<AssetLoaderContext, float> OnProgress, Action<IContextualizedError> OnError, GameObject go = null, AssetLoaderOptions assetLoaderOptions = null)
+    {
+        if(assetLoaderOptions==null)
+            assetLoaderOptions = AssetLoader.CreateDefaultLoaderOptions();
+        Debug.Log("assetLoaderOptions==>" + assetLoaderOptions.LoadPointClouds);
+        var webRequest = AssetDownloader.CreateWebRequest(ModelURL);
+        AssetDownloader.LoadModelFromUri(webRequest, OnLoad, OnMaterialsLoad, OnProgress, OnError, go, assetLoaderOptions);
+
+    }
+
+    static void loadFile(string ModelPath, Action<AssetLoaderContext> OnLoad, Action<AssetLoaderContext> OnMaterialsLoad, Action<AssetLoaderContext, float> OnProgress, Action<IContextualizedError> OnError, GameObject go = null, AssetLoaderOptions assetLoaderOptions = null)
+    {
+        if (assetLoaderOptions == null)
+            assetLoaderOptions = AssetLoader.CreateDefaultLoaderOptions();
+        Debug.Log("assetLoaderOptions==>" + assetLoaderOptions.LoadPointClouds);
+
+      
+        AssetLoader.LoadModelFromFile(ModelPath, OnLoad, OnMaterialsLoad, OnProgress, OnError, go, assetLoaderOptions);
+    }
+    /// <summary>
+    /// Called when any error occurs.
+    /// </summary>
+    /// <param name="obj">The contextualized error, containing the original exception and the context passed to the method where the error was thrown.</param>
+    private void OnError(IContextualizedError obj)
+    {
+        Debug.LogError($"An error occurred while loading your Model: {obj.GetInnerException()}");
+    }
+
+    /// <summary>
+    /// Called when the Model loading progress changes.
+    /// </summary>
+    /// <param name="assetLoaderContext">The context used to load the Model.</param>
+    /// <param name="progress">The loading progress.</param>
+    private void OnProgress(AssetLoaderContext assetLoaderContext, float progress)
+    {
+        Debug.Log($"Loading Model. Progress: {progress:P}");
+    }
+
+    /// <summary>
+    /// Called when the Model (including Textures and Materials) has been fully loaded.
+    /// </summary>
+    /// <remarks>The loaded GameObject is available on the assetLoaderContext.RootGameObject field.</remarks>
+    /// <param name="assetLoaderContext">The context used to load the Model.</param>
+    private void OnMaterialsLoad(AssetLoaderContext assetLoaderContext)
+    {
+        Debug.Log("Materials loaded. Model fully loaded.");
+    }
+
+    /// <summary>
+    /// Called when the Model Meshes and hierarchy are loaded.
+    /// </summary>
+    /// <remarks>The loaded GameObject is available on the assetLoaderContext.RootGameObject field.</remarks>
+    /// <param name="assetLoaderContext">The context used to load the Model.</param>
+    private void OnLoad(AssetLoaderContext assetLoaderContext)
+    {
+        Debug.Log("Model loaded. Loading materials.");
+    }
+}
+

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

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

+ 20 - 16
Assets/HotUpdate/UIEditorPanel.cs

@@ -362,10 +362,11 @@ public class UIEditorPanel : AbstractController, EventObserver
                     UIManager.Instance.ShowUI(UINameConfig.LoadingPanel, typeof(LoadingPanel), (int)ELoadState.SaveSpoitDataEnd);
                     ((LoadingPanel)UIManager.Instance.GetUI(UINameConfig.LoadingPanel)).TextStr = "更新成功";
 
-                    InstantiateCommand Command = new InstantiateCommand(
-                            InstantiateSystem.Instance.BlueObject.WarningPopUp,
-                            InstantiateSystem.Instance.BlueObject.SuccessText);
-                    CommandSystem.Instance.Send(Command);
+
+                    ShowTipTime.Instance.gameObject.SetActive(true);
+                    ShowTipTime.Instance.GetComponent<ShowTipTime>().TimeFloat = 3;
+                    ShowTipTime.Instance.GetComponent<ShowTipTime>().t = 0;
+                    ShowTipTime.Instance.GetComponentInChildren<Text>().text = "保存成功";
 
                     GameManager.Instance.saveOldData();
                     return;
@@ -373,10 +374,11 @@ public class UIEditorPanel : AbstractController, EventObserver
                 else
                 {
 
-                    InstantiateCommand ErrorCommand = new InstantiateCommand(
-                        InstantiateSystem.Instance.BlueObject.WarningPopUp,
-                        InstantiateSystem.Instance.BlueObject.NetErrorText);
-                    CommandSystem.Instance.Send(ErrorCommand);
+                    ShowTipTime.Instance.gameObject.SetActive(true);
+                    ShowTipTime.Instance.GetComponent<ShowTipTime>().TimeFloat = 3;
+                    ShowTipTime.Instance.GetComponent<ShowTipTime>().t = 0;
+                    ShowTipTime.Instance.GetComponentInChildren<Text>().text = "保存失败";
+
                     //this.GetService<ISendLogService>().SendLog("Blue","UnityWebRequest Error");
                     return;
                 }
@@ -384,10 +386,11 @@ public class UIEditorPanel : AbstractController, EventObserver
             else
             {
 
-                InstantiateCommand ErrorCommand = new InstantiateCommand(
-                    InstantiateSystem.Instance.BlueObject.WarningPopUp,
-                    InstantiateSystem.Instance.BlueObject.NetErrorText);
-                CommandSystem.Instance.Send(ErrorCommand);
+
+                ShowTipTime.Instance.gameObject.SetActive(true);
+                ShowTipTime.Instance.GetComponent<ShowTipTime>().TimeFloat = 3;
+                ShowTipTime.Instance.GetComponent<ShowTipTime>().t = 0;
+                ShowTipTime.Instance.GetComponentInChildren<Text>().text = "保存失败";
                 //this.GetService<ISendLogService>().SendLog("Blue","UnityWebRequest Error");
                 return;
             }
@@ -395,10 +398,11 @@ public class UIEditorPanel : AbstractController, EventObserver
         }
         catch
         {
-            InstantiateCommand ErrorCommand = new InstantiateCommand(
-                InstantiateSystem.Instance.BlueObject.WarningPopUp,
-                InstantiateSystem.Instance.BlueObject.NetErrorText);
-            CommandSystem.Instance.Send(ErrorCommand);
+
+            ShowTipTime.Instance.gameObject.SetActive(true);
+            ShowTipTime.Instance.GetComponent<ShowTipTime>().TimeFloat = 3;
+            ShowTipTime.Instance.GetComponent<ShowTipTime>().t = 0;
+            ShowTipTime.Instance.GetComponentInChildren<Text>().text = "保存失败";
             //this.GetService<ISendLogService>().SendLog("Blue","UnityWebRequest Error");
             return;
 

+ 2 - 2
Assets/HotUpdate/UIManager.cs

@@ -68,7 +68,7 @@ public class UIManager : Singleton<UIManager>
         m_DicUI.TryGetValue(uiName, out baseUI);
         if (null == baseUI)
         {
-            UnityEngine.Object @object = ResMgr.Instance.Load("UI/" + uiName);
+            UnityEngine.Object @object = ResMgr.Instance.Load(uiName);
             GameObject gameObject = UnityEngine.Object.Instantiate<GameObject>(@object as GameObject);
             gameObject.SetActive(false);
             baseUI = (gameObject.AddComponent(type) as BaseUI);
@@ -90,7 +90,7 @@ public class UIManager : Singleton<UIManager>
         m_DicUI.TryGetValue(uiName, out baseUI);
         if (null == baseUI)
         {
-            UnityEngine.Object @object = ResMgr.Instance.Load("UI/" + uiName);
+            UnityEngine.Object @object = ResMgr.Instance.Load(uiName);
             GameObject gameObject = UnityEngine.Object.Instantiate<GameObject>(@object as GameObject);
             gameObject.SetActive(false);
             baseUI = (gameObject.AddComponent(type) as BaseUI);

+ 13 - 0
Assets/HotUpdate/UserChooseScene.cs

@@ -1,5 +1,6 @@
 using System.Collections;
 using System.Collections.Generic;
+using System.IO;
 using UnityEngine;
 using UnityEngine.UI;
 
@@ -15,6 +16,7 @@ public class UserChooseScene : MonoBehaviour
     {
         initList();
     }
+    public RectTransform scrollview;
     public void initList()
     {
         Debug.Log("当前场景===》" + UserSceneManager.Instance.SceneList.Count) ;
@@ -26,6 +28,17 @@ public class UserChooseScene : MonoBehaviour
             go.id = i.id;
             list.Add(go);
         }
+
+        switch (UserSceneManager.Instance.SceneList.Count)
+        {
+            case 1:
+                scrollview.sizeDelta = new Vector2(200, 291);
+                break;
+            case 2:
+                scrollview.sizeDelta = new Vector2(500, 291);
+                break;
+        }
+
         list[0].tg.isOn = true;
     }
 

+ 1 - 0
Assets/HotUpdate/UserChooseSceneItem.cs

@@ -29,6 +29,7 @@ public class UserChooseSceneItem : MonoBehaviour
             UIManager.Instance.ShowUI(UINameConfig.LoadingPanel, typeof(LoadingPanel), (int)ELoadState.download);
             GameScene.Instance.gotoScenes(id);
             DownloadResManager.Instance.StartDownLoad();
+            MQTTClient.Instance.SubscribeScene(id.ToString());
         });
     }
     

+ 3 - 1
Assets/HotUpdate/UserSceneUI.cs

@@ -22,7 +22,9 @@ public class UserSceneUI : UserBaseUI<UserSceneUI>
         //加载预制体
         Debug.Log("UI   LoadResources===>");
         // GameScene.Instance.gotoScenes("147");
-        obj = GameObject.Instantiate(Resources.Load<GameObject>("SceneChoose2"));
+        UnityEngine.Object @object = ResMgr.Instance.Load("SceneChoose2");
+        GameObject gameObject = UnityEngine.Object.Instantiate<GameObject>(@object as GameObject);
+        obj = gameObject;//GameObject.Instantiate(Resources.Load<GameObject>("SceneChoose2"));
         obj.transform.parent = GameScene.Instance.Canvas.transform;
         obj.transform.localPosition = Vector3.zero;
         obj.transform.localEulerAngles = Vector3.zero;

+ 2 - 0
Assets/HotUpdate/VufroiaTrigger.cs

@@ -59,6 +59,8 @@ public class VufroiaTrigger
     IEnumerable<ObserverBehaviour> observer = null;
     IEnumerator loadVuforia()
     {
+        isData = false;
+        isXML = false;
         Debug.Log("DGJ ===> 加载Database  " + LoaclxmlFile);
         observer = VuforiaBehaviour.Instance.ObserverFactory.CreateBehavioursFromDatabase(LoaclxmlFile);
         try

+ 8 - 2
Assets/HybridCLRGenerate/AOTGenericReferences.cs

@@ -5,6 +5,7 @@ public class AOTGenericReferences : UnityEngine.MonoBehaviour
 	// {{ AOT assemblies
 	public static readonly IReadOnlyList<string> PatchedAOTAssemblyList = new List<string>
 	{
+		"DOTween.dll",
 		"LitJson.dll",
 		"Newtonsoft.Json.dll",
 		"SDK.dll",
@@ -320,6 +321,7 @@ public class AOTGenericReferences : UnityEngine.MonoBehaviour
 	// System.Func<object,object>
 	// System.Func<object>
 	// System.IEquatable<object>
+	// System.Linq.Buffer<int>
 	// System.Linq.Enumerable.<ExceptIterator>d__77<object>
 	// System.Linq.Enumerable.Iterator<Loom.DelayedQueueItem>
 	// System.Linq.Enumerable.WhereArrayIterator<Loom.DelayedQueueItem>
@@ -392,6 +394,8 @@ public class AOTGenericReferences : UnityEngine.MonoBehaviour
 
 	public void RefMethods()
 	{
+		// object DG.Tweening.TweenSettingsExtensions.OnComplete<object>(object,DG.Tweening.TweenCallback)
+		// object DG.Tweening.TweenSettingsExtensions.SetEase<object>(object,DG.Tweening.Ease)
 		// System.Void LitJson.JsonMapper.RegisterImporter<float,double>(LitJson.ImporterFunc<float,double>)
 		// System.Void LitJson.JsonMapper.RegisterImporter<int,object>(LitJson.ImporterFunc<int,object>)
 		// System.Void LitJson.JsonMapper.RegisterImporter<object,int>(LitJson.ImporterFunc<object,int>)
@@ -405,6 +409,8 @@ public class AOTGenericReferences : UnityEngine.MonoBehaviour
 		// System.Void System.Array.Resize<object>(object[]&,int)
 		// System.Collections.Generic.IEnumerable<object> System.Linq.Enumerable.Except<object>(System.Collections.Generic.IEnumerable<object>,System.Collections.Generic.IEnumerable<object>)
 		// System.Collections.Generic.IEnumerable<object> System.Linq.Enumerable.ExceptIterator<object>(System.Collections.Generic.IEnumerable<object>,System.Collections.Generic.IEnumerable<object>,System.Collections.Generic.IEqualityComparer<object>)
+		// int[] System.Linq.Enumerable.ToArray<int>(System.Collections.Generic.IEnumerable<int>)
+		// System.Collections.Generic.List<UnityEngine.Vector3> System.Linq.Enumerable.ToList<UnityEngine.Vector3>(System.Collections.Generic.IEnumerable<UnityEngine.Vector3>)
 		// System.Collections.Generic.List<object> System.Linq.Enumerable.ToList<object>(System.Collections.Generic.IEnumerable<object>)
 		// System.Collections.Generic.IEnumerable<Loom.DelayedQueueItem> System.Linq.Enumerable.Where<Loom.DelayedQueueItem>(System.Collections.Generic.IEnumerable<Loom.DelayedQueueItem>,System.Func<Loom.DelayedQueueItem,bool>)
 		// System.Void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.TaskAwaiter,COSXMLDemo.Program.<Main>d__1>(System.Runtime.CompilerServices.TaskAwaiter&,COSXMLDemo.Program.<Main>d__1&)
@@ -435,8 +441,6 @@ public class AOTGenericReferences : UnityEngine.MonoBehaviour
 		// object UnityEngine.AndroidJavaObject.FromJavaArrayDeleteLocalRef<object>(System.IntPtr)
 		// object UnityEngine.AndroidJavaObject.GetStatic<object>(string)
 		// object UnityEngine.AndroidJavaObject._GetStatic<object>(string)
-		// object[] UnityEngine.AssetBundle.ConvertObjects<object>(UnityEngine.Object[])
-		// object[] UnityEngine.AssetBundle.LoadAllAssets<object>()
 		// UnityEngine.AssetBundleRequest UnityEngine.AssetBundle.LoadAllAssetsAsync<object>()
 		// object UnityEngine.AssetBundle.LoadAsset<object>(string)
 		// UnityEngine.AssetBundleRequest UnityEngine.AssetBundle.LoadAssetAsync<object>(string)
@@ -451,6 +455,7 @@ public class AOTGenericReferences : UnityEngine.MonoBehaviour
 		// object UnityEngine.GameObject.GetComponentInParent<object>(bool)
 		// object[] UnityEngine.GameObject.GetComponentsInChildren<object>()
 		// object[] UnityEngine.GameObject.GetComponentsInChildren<object>(bool)
+		// bool UnityEngine.GameObject.TryGetComponent<object>(object&)
 		// object UnityEngine.Object.FindObjectOfType<object>()
 		// object UnityEngine.Object.Instantiate<object>(object)
 		// object UnityEngine.Object.Instantiate<object>(object,UnityEngine.Transform)
@@ -458,6 +463,7 @@ public class AOTGenericReferences : UnityEngine.MonoBehaviour
 		// object UnityEngine.Object.Instantiate<object>(object,UnityEngine.Vector3,UnityEngine.Quaternion)
 		// object UnityEngine.Resources.Load<object>(string)
 		// UnityEngine.ResourceRequest UnityEngine.Resources.LoadAsync<object>(string)
+		// object UnityEngine.ScriptableObject.CreateInstance<object>()
 		// object UnityEngine._AndroidJNIHelper.ConvertFromJNIArray<object>(System.IntPtr)
 		// System.IntPtr UnityEngine._AndroidJNIHelper.GetFieldID<object>(System.IntPtr,string,bool)
 	}

+ 16 - 2
Assets/HybridCLRGenerate/link.xml

@@ -57,15 +57,18 @@
     <type fullname="PointerHandler" preserve="all" />
     <type fullname="SC.XR.Unity.Module_InputSystem.AnyKeyEventDelegate" preserve="all" />
     <type fullname="SC.XR.Unity.Module_InputSystem.DispatcherBase" preserve="all" />
+    <type fullname="SC.XR.Unity.Module_InputSystem.InputDataBase" preserve="all" />
     <type fullname="SC.XR.Unity.Module_InputSystem.InputDeviceGC.KS.InputDeviceKSPart" preserve="all" />
     <type fullname="SC.XR.Unity.Module_InputSystem.InputDeviceGC.KS.InputDeviceKSPartUI" preserve="all" />
     <type fullname="SC.XR.Unity.Module_InputSystem.InputDevicePartBase" preserve="all" />
     <type fullname="SC.XR.Unity.Module_InputSystem.InputKeyCode" preserve="all" />
     <type fullname="SC.XR.Unity.Module_InputSystem.ManipulationHandler" preserve="all" />
+    <type fullname="SC.XR.Unity.Module_InputSystem.SCPointEventData" preserve="all" />
     <type fullname="SC.XR.Unity.SCBaseLayoutGroup" preserve="all" />
     <type fullname="SC.XR.Unity.SCGridLayoutGroup" preserve="all" />
     <type fullname="SC.XR.Unity.SCInputField" preserve="all" />
     <type fullname="SC.XR.Unity.SCInputField/ContentType" preserve="all" />
+    <type fullname="SC.XR.Unity.SCKeyboardFollower" preserve="all" />
     <type fullname="SC.XR.Unity.SCSlider3D" preserve="all" />
     <type fullname="SC.XR.Unity.SCToggleBase" preserve="all" />
     <type fullname="SC.XR.Unity.SCToggleSwitch3D" preserve="all" />
@@ -111,7 +114,6 @@
   </assembly>
   <assembly fullname="System.IO.Compression.FileSystem">
     <type fullname="System.IO.Compression.ZipFile" preserve="all" />
-    <type fullname="System.IO.Compression.ZipFileExtensions" preserve="all" />
   </assembly>
   <assembly fullname="System.Xml">
     <type fullname="System.Xml.Serialization.XmlArrayAttribute" preserve="all" />
@@ -129,12 +131,22 @@
     <type fullname="System.Xml.XmlWriterSettings" preserve="all" />
   </assembly>
   <assembly fullname="TriLib">
-    <type fullname="TriLibModelLoad" preserve="all" />
+    <type fullname="TriLibCore.AssetDownloader" preserve="all" />
+    <type fullname="TriLibCore.AssetDownloader/HttpRequestMethod" preserve="all" />
+    <type fullname="TriLibCore.AssetLoader" preserve="all" />
+    <type fullname="TriLibCore.Mappers.FilePickerExternalDataMapper" preserve="all" />
+    <type fullname="TriLibCore.Mappers.FilePickerTextureMapper" preserve="all" />
+    <type fullname="TriLibCore.Samples.PointCloudData" preserve="all" />
+    <type fullname="TriLibCore.Samples.PointCloudRenderer" preserve="all" />
   </assembly>
   <assembly fullname="TriLibCore">
     <type fullname="TriLibCore.AssetLoaderContext" preserve="all" />
+    <type fullname="TriLibCore.AssetLoaderOptions" preserve="all" />
     <type fullname="TriLibCore.Extensions.AnimationExtensions" preserve="all" />
     <type fullname="TriLibCore.IContextualizedError" preserve="all" />
+    <type fullname="TriLibCore.Interfaces.IModel" preserve="all" />
+    <type fullname="TriLibCore.Mappers.ExternalDataMapper" preserve="all" />
+    <type fullname="TriLibCore.Mappers.TextureMapper" preserve="all" />
   </assembly>
   <assembly fullname="Unity.TextMeshPro">
     <type fullname="TMPro.AtlasPopulationMode" preserve="all" />
@@ -265,6 +277,7 @@
     <type fullname="UnityEngine.Rendering.CameraEvent" preserve="all" />
     <type fullname="UnityEngine.Rendering.CommandBuffer" preserve="all" />
     <type fullname="UnityEngine.Rendering.GraphicsDeviceType" preserve="all" />
+    <type fullname="UnityEngine.Rendering.IndexFormat" preserve="all" />
     <type fullname="UnityEngine.Rendering.RenderTargetIdentifier" preserve="all" />
     <type fullname="UnityEngine.RenderingPath" preserve="all" />
     <type fullname="UnityEngine.RequireComponent" preserve="all" />
@@ -358,6 +371,7 @@
     <type fullname="UnityEngine.EventSystems.IScrollHandler" preserve="all" />
     <type fullname="UnityEngine.EventSystems.PointerEventData" preserve="all" />
     <type fullname="UnityEngine.EventSystems.PointerEventData/InputButton" preserve="all" />
+    <type fullname="UnityEngine.EventSystems.RaycastResult" preserve="all" />
     <type fullname="UnityEngine.EventSystems.UIBehaviour" preserve="all" />
     <type fullname="UnityEngine.UI.Button" preserve="all" />
     <type fullname="UnityEngine.UI.Button/ButtonClickedEvent" preserve="all" />

+ 18 - 38
Assets/MRNavigatorPro.unity

@@ -208,53 +208,33 @@ PrefabInstance:
     - target: {fileID: 4002528869004902571, guid: 9aa3328b080774e6a968fc5910820dbf,
         type: 3}
       propertyPath: m_AnchorMax.y
-      value: 0
+      value: 1
       objectReference: {fileID: 0}
     - target: {fileID: 4002528869004902571, guid: 9aa3328b080774e6a968fc5910820dbf,
         type: 3}
       propertyPath: m_AnchorMin.y
-      value: 0
+      value: 1
       objectReference: {fileID: 0}
     - target: {fileID: 4002528869004902571, guid: 9aa3328b080774e6a968fc5910820dbf,
         type: 3}
       propertyPath: m_SizeDelta.x
-      value: 0
+      value: 188
       objectReference: {fileID: 0}
     - target: {fileID: 4002528869004902571, guid: 9aa3328b080774e6a968fc5910820dbf,
         type: 3}
       propertyPath: m_SizeDelta.y
-      value: 0
+      value: 61
       objectReference: {fileID: 0}
     - target: {fileID: 4002528869004902571, guid: 9aa3328b080774e6a968fc5910820dbf,
         type: 3}
       propertyPath: m_AnchoredPosition.x
-      value: 0
+      value: 100
       objectReference: {fileID: 0}
     - target: {fileID: 4002528869004902571, guid: 9aa3328b080774e6a968fc5910820dbf,
         type: 3}
       propertyPath: m_AnchoredPosition.y
-      value: 0
+      value: -101.5
       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
@@ -263,32 +243,32 @@ PrefabInstance:
     - target: {fileID: 4002528869692624363, guid: 9aa3328b080774e6a968fc5910820dbf,
         type: 3}
       propertyPath: m_AnchorMax.y
-      value: 0
+      value: 1
       objectReference: {fileID: 0}
     - target: {fileID: 4002528869692624363, guid: 9aa3328b080774e6a968fc5910820dbf,
         type: 3}
       propertyPath: m_AnchorMin.y
-      value: 0
+      value: 1
       objectReference: {fileID: 0}
     - target: {fileID: 4002528869692624363, guid: 9aa3328b080774e6a968fc5910820dbf,
         type: 3}
       propertyPath: m_SizeDelta.x
-      value: 0
+      value: 188
       objectReference: {fileID: 0}
     - target: {fileID: 4002528869692624363, guid: 9aa3328b080774e6a968fc5910820dbf,
         type: 3}
       propertyPath: m_SizeDelta.y
-      value: 0
+      value: 61
       objectReference: {fileID: 0}
     - target: {fileID: 4002528869692624363, guid: 9aa3328b080774e6a968fc5910820dbf,
         type: 3}
       propertyPath: m_AnchoredPosition.x
-      value: 0
+      value: 100
       objectReference: {fileID: 0}
     - target: {fileID: 4002528869692624363, guid: 9aa3328b080774e6a968fc5910820dbf,
         type: 3}
       propertyPath: m_AnchoredPosition.y
-      value: 0
+      value: -35.5
       objectReference: {fileID: 0}
     - target: {fileID: 4002528869717850668, guid: 9aa3328b080774e6a968fc5910820dbf,
         type: 3}
@@ -298,32 +278,32 @@ PrefabInstance:
     - target: {fileID: 4002528869793121930, guid: 9aa3328b080774e6a968fc5910820dbf,
         type: 3}
       propertyPath: m_AnchorMax.y
-      value: 0
+      value: 1
       objectReference: {fileID: 0}
     - target: {fileID: 4002528869793121930, guid: 9aa3328b080774e6a968fc5910820dbf,
         type: 3}
       propertyPath: m_AnchorMin.y
-      value: 0
+      value: 1
       objectReference: {fileID: 0}
     - target: {fileID: 4002528869793121930, guid: 9aa3328b080774e6a968fc5910820dbf,
         type: 3}
       propertyPath: m_SizeDelta.x
-      value: 0
+      value: 188
       objectReference: {fileID: 0}
     - target: {fileID: 4002528869793121930, guid: 9aa3328b080774e6a968fc5910820dbf,
         type: 3}
       propertyPath: m_SizeDelta.y
-      value: 0
+      value: 61
       objectReference: {fileID: 0}
     - target: {fileID: 4002528869793121930, guid: 9aa3328b080774e6a968fc5910820dbf,
         type: 3}
       propertyPath: m_AnchoredPosition.x
-      value: 0
+      value: 100
       objectReference: {fileID: 0}
     - target: {fileID: 4002528869793121930, guid: 9aa3328b080774e6a968fc5910820dbf,
         type: 3}
       propertyPath: m_AnchoredPosition.y
-      value: 0
+      value: -35.5
       objectReference: {fileID: 0}
     m_RemovedComponents: []
   m_SourcePrefab: {fileID: 100100000, guid: 9aa3328b080774e6a968fc5910820dbf, type: 3}

文件差異過大導致無法顯示
+ 369 - 153
Assets/MRNavigatorStart/MRNavigatorStart.prefab


文件差異過大導致無法顯示
+ 312 - 191
Assets/MRNavigatorStart/UI/LoginPanel.prefab


+ 1 - 1
Assets/MRNavigatorStart/UI/LoginPanel.prefab.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: f8911898ec087ee4b8a94b2cf3353631
+guid: 810e93a2d6ba940449b2db7b0aa303ba
 PrefabImporter:
   externalObjects: {}
   userData: 

+ 457 - 173
Assets/MRNavigatorStart/UI/SceneChoose.prefab

@@ -1,5 +1,102 @@
 %YAML 1.1
 %TAG !u! tag:unity3d.com,2011:
+--- !u!1 &99023326990810525
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 4796151297095308763}
+  - component: {fileID: 5231857020705230135}
+  - component: {fileID: 4401533180721403518}
+  - component: {fileID: 3643931659463619144}
+  m_Layer: 0
+  m_Name: Mask
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &4796151297095308763
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 99023326990810525}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 1.0813, y: -10.401699, z: -32}
+  m_LocalScale: {x: 199.20334, y: 158.71701, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 637711478126821773}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &5231857020705230135
+MeshFilter:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 99023326990810525}
+  m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!23 &4401533180721403518
+MeshRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 99023326990810525}
+  m_Enabled: 0
+  m_CastShadows: 1
+  m_ReceiveShadows: 1
+  m_DynamicOccludee: 1
+  m_StaticShadowCaster: 0
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_RayTracingMode: 2
+  m_RayTraceProcedural: 0
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
+  m_StaticBatchInfo:
+    firstSubMesh: 0
+    subMeshCount: 0
+  m_StaticBatchRoot: {fileID: 0}
+  m_ProbeAnchor: {fileID: 0}
+  m_LightProbeVolumeOverride: {fileID: 0}
+  m_ScaleInLightmap: 1
+  m_ReceiveGI: 1
+  m_PreserveUVs: 0
+  m_IgnoreNormalsForChartDetection: 0
+  m_ImportantGI: 0
+  m_StitchLightmapSeams: 1
+  m_SelectedEditorRenderState: 3
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 0
+  m_AdditionalVertexStreams: {fileID: 0}
+--- !u!65 &3643931659463619144
+BoxCollider:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 99023326990810525}
+  m_Material: {fileID: 0}
+  m_IsTrigger: 0
+  m_Enabled: 1
+  serializedVersion: 2
+  m_Size: {x: 1, y: 1, z: 1}
+  m_Center: {x: 0, y: 0, z: 0}
 --- !u!1 &334477807531560067
 GameObject:
   m_ObjectHideFlags: 0
@@ -117,8 +214,8 @@ RectTransform:
   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: 15.9399, y: -33.046326}
-  m_SizeDelta: {x: 988.0125, y: 266.0927}
+  m_AnchoredPosition: {x: 0, y: -120}
+  m_SizeDelta: {x: 800, y: 266.0927}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &2047066537979211014
 CanvasRenderer:
@@ -268,6 +365,89 @@ MonoBehaviour:
     m_VerticalOverflow: 0
     m_LineSpacing: 1
   m_Text: "\u8BF7\u9009\u62E9\u5BFC\u89C8\u573A\u666F"
+--- !u!1 &826809494062097433
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 7519625297381157963}
+  - component: {fileID: 7037243246508889763}
+  - component: {fileID: 3885435276254352223}
+  m_Layer: 0
+  m_Name: Demo 5
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &7519625297381157963
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 826809494062097433}
+  m_LocalRotation: {x: 0.00000008146034, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 70.1, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 637711478126821773}
+  m_RootOrder: 2
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &7037243246508889763
+MeshFilter:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 826809494062097433}
+  m_Mesh: {fileID: 6417643183261216205, guid: 3b3d4d3413d974d999bed5c4b691c8a0, type: 3}
+--- !u!23 &3885435276254352223
+MeshRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 826809494062097433}
+  m_Enabled: 1
+  m_CastShadows: 1
+  m_ReceiveShadows: 1
+  m_DynamicOccludee: 1
+  m_StaticShadowCaster: 0
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_RayTracingMode: 2
+  m_RayTraceProcedural: 0
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: 1670020797688939130, guid: 3b3d4d3413d974d999bed5c4b691c8a0, type: 3}
+  m_StaticBatchInfo:
+    firstSubMesh: 0
+    subMeshCount: 0
+  m_StaticBatchRoot: {fileID: 0}
+  m_ProbeAnchor: {fileID: 0}
+  m_LightProbeVolumeOverride: {fileID: 0}
+  m_ScaleInLightmap: 1
+  m_ReceiveGI: 1
+  m_PreserveUVs: 0
+  m_IgnoreNormalsForChartDetection: 0
+  m_ImportantGI: 0
+  m_StitchLightmapSeams: 1
+  m_SelectedEditorRenderState: 3
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 0
+  m_AdditionalVertexStreams: {fileID: 0}
 --- !u!1 &1681573349418858094
 GameObject:
   m_ObjectHideFlags: 0
@@ -304,7 +484,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.00097336306, y: -0.000030517578}
+  m_AnchoredPosition: {x: -0.0009868003, y: -0.000030517578}
   m_SizeDelta: {x: 0, y: 300}
   m_Pivot: {x: 0, y: 1}
 --- !u!114 &4194415072946547016
@@ -514,6 +694,63 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   m_ShowMaskGraphic: 0
+--- !u!1 &2896224852453416734
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 637711478126821773}
+  - component: {fileID: 1429076432975326775}
+  m_Layer: 0
+  m_Name: SceneChooseItem
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 0
+--- !u!224 &637711478126821773
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2896224852453416734}
+  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: 569658176750548211}
+  - {fileID: 4796151297095308763}
+  - {fileID: 7519625297381157963}
+  m_Father: {fileID: 1100477978284410278}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 1}
+  m_AnchorMax: {x: 0, y: 1}
+  m_AnchoredPosition: {x: 100, y: -150}
+  m_SizeDelta: {x: 200, y: 300}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1429076432975326775
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2896224852453416734}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7887d3f3071579846a3efd6a31f0befa, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  tname: {fileID: 3896429404325303052}
+  sceneChoose_go: {fileID: 7580868838342563817}
+  xrCamera: {fileID: 0}
+  mask: {fileID: 5449918490998897232}
+  model: {fileID: 826809494062097433}
 --- !u!1 &3062347903703716212
 GameObject:
   m_ObjectHideFlags: 0
@@ -1256,6 +1493,101 @@ MonoBehaviour:
   m_OnClick:
     m_PersistentCalls:
       m_Calls: []
+--- !u!1 &7558013929435979066
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 9059096922789060888}
+  - component: {fileID: 2316779888673432426}
+  - component: {fileID: 3896429404325303052}
+  - component: {fileID: 2079293216400081136}
+  m_Layer: 5
+  m_Name: Label
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &9059096922789060888
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7558013929435979066}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 569658176750548211}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 37.5, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &2316779888673432426
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7558013929435979066}
+  m_CullTransparentMesh: 0
+--- !u!114 &3896429404325303052
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7558013929435979066}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, 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_FontData:
+    m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+    m_FontSize: 20
+    m_FontStyle: 1
+    m_BestFit: 0
+    m_MinSize: 2
+    m_MaxSize: 64
+    m_Alignment: 4
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 1
+    m_VerticalOverflow: 0
+    m_LineSpacing: 1
+  m_Text: 12345
+--- !u!114 &2079293216400081136
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7558013929435979066}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_HorizontalFit: 2
+  m_VerticalFit: 2
 --- !u!1 &7580868838342563817
 GameObject:
   m_ObjectHideFlags: 0
@@ -1326,6 +1658,7 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   view: {fileID: 3400979153867202484}
+  scrollview: {fileID: 509699104403403747}
 --- !u!1 &7580868839341974970
 GameObject:
   m_ObjectHideFlags: 0
@@ -1887,6 +2220,123 @@ MonoBehaviour:
     m_VerticalOverflow: 0
     m_LineSpacing: 1
   m_Text: Button
+--- !u!1 &8345787064115031563
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 569658176750548211}
+  - component: {fileID: 3536274808817273853}
+  - component: {fileID: 2491290566796429787}
+  - component: {fileID: 553720669266316243}
+  - component: {fileID: 5494629714138183885}
+  m_Layer: 0
+  m_Name: RawImage
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &569658176750548211
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8345787064115031563}
+  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: 9059096922789060888}
+  m_Father: {fileID: 637711478126821773}
+  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, y: -73}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &3536274808817273853
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8345787064115031563}
+  m_CullTransparentMesh: 1
+--- !u!114 &2491290566796429787
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8345787064115031563}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 05841a9ad3fccc44da9d0e4653f05e2a, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 0.50980395, g: 0.50980395, b: 0.50980395, a: 0.39215687}
+  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
+  Radius: 10
+--- !u!114 &553720669266316243
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8345787064115031563}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_HorizontalFit: 2
+  m_VerticalFit: 2
+--- !u!114 &5494629714138183885
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8345787064115031563}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Padding:
+    m_Left: 10
+    m_Right: 10
+    m_Top: 10
+    m_Bottom: 10
+  m_ChildAlignment: 0
+  m_Spacing: 0
+  m_ChildForceExpandWidth: 1
+  m_ChildForceExpandHeight: 1
+  m_ChildControlWidth: 0
+  m_ChildControlHeight: 0
+  m_ChildScaleWidth: 0
+  m_ChildScaleHeight: 0
+  m_ReverseArrangement: 0
 --- !u!1001 &1946089822636538336
 PrefabInstance:
   m_ObjectHideFlags: 0
@@ -1907,7 +2357,7 @@ PrefabInstance:
     - target: {fileID: 2782493701494410359, guid: c68b9d3f6b793e84b9cac7959eb00694,
         type: 3}
       propertyPath: m_RootOrder
-      value: 1
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 6051884441763802338, guid: c68b9d3f6b793e84b9cac7959eb00694,
         type: 3}
@@ -2014,136 +2464,11 @@ PrefabInstance:
       propertyPath: m_LocalEulerAnglesHint.z
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 8292379019897205361, guid: c68b9d3f6b793e84b9cac7959eb00694,
-        type: 3}
-      propertyPath: m_Name
-      value: SceneChooseItem
-      objectReference: {fileID: 0}
-    - target: {fileID: 8292379019897205361, guid: c68b9d3f6b793e84b9cac7959eb00694,
-        type: 3}
-      propertyPath: m_IsActive
-      value: 0
-      objectReference: {fileID: 0}
-    m_RemovedComponents: []
-  m_SourcePrefab: {fileID: 100100000, guid: c68b9d3f6b793e84b9cac7959eb00694, type: 3}
---- !u!224 &5259494870099924226 stripped
-RectTransform:
-  m_CorrespondingSourceObject: {fileID: 6051884441763802338, guid: c68b9d3f6b793e84b9cac7959eb00694,
-    type: 3}
-  m_PrefabInstance: {fileID: 1946089822636538336}
-  m_PrefabAsset: {fileID: 0}
---- !u!1001 &6567664290511924591
-PrefabInstance:
-  m_ObjectHideFlags: 0
-  serializedVersion: 2
-  m_Modification:
-    m_TransformParent: {fileID: 1100477978284410278}
-    m_Modifications:
-    - target: {fileID: 6051884441763802338, guid: c68b9d3f6b793e84b9cac7959eb00694,
-        type: 3}
-      propertyPath: m_Pivot.x
-      value: 0.5
-      objectReference: {fileID: 0}
-    - target: {fileID: 6051884441763802338, guid: c68b9d3f6b793e84b9cac7959eb00694,
-        type: 3}
-      propertyPath: m_Pivot.y
-      value: 0.5
-      objectReference: {fileID: 0}
-    - target: {fileID: 6051884441763802338, guid: c68b9d3f6b793e84b9cac7959eb00694,
+    - target: {fileID: 6684136759487879580, guid: c68b9d3f6b793e84b9cac7959eb00694,
         type: 3}
       propertyPath: m_RootOrder
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6051884441763802338, guid: c68b9d3f6b793e84b9cac7959eb00694,
-        type: 3}
-      propertyPath: m_AnchorMax.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6051884441763802338, guid: c68b9d3f6b793e84b9cac7959eb00694,
-        type: 3}
-      propertyPath: m_AnchorMax.y
-      value: 1
-      objectReference: {fileID: 0}
-    - target: {fileID: 6051884441763802338, guid: c68b9d3f6b793e84b9cac7959eb00694,
-        type: 3}
-      propertyPath: m_AnchorMin.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6051884441763802338, guid: c68b9d3f6b793e84b9cac7959eb00694,
-        type: 3}
-      propertyPath: m_AnchorMin.y
-      value: 1
-      objectReference: {fileID: 0}
-    - target: {fileID: 6051884441763802338, guid: c68b9d3f6b793e84b9cac7959eb00694,
-        type: 3}
-      propertyPath: m_SizeDelta.x
-      value: 200
-      objectReference: {fileID: 0}
-    - target: {fileID: 6051884441763802338, guid: c68b9d3f6b793e84b9cac7959eb00694,
-        type: 3}
-      propertyPath: m_SizeDelta.y
-      value: 300
-      objectReference: {fileID: 0}
-    - target: {fileID: 6051884441763802338, guid: c68b9d3f6b793e84b9cac7959eb00694,
-        type: 3}
-      propertyPath: m_LocalPosition.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6051884441763802338, guid: c68b9d3f6b793e84b9cac7959eb00694,
-        type: 3}
-      propertyPath: m_LocalPosition.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6051884441763802338, guid: c68b9d3f6b793e84b9cac7959eb00694,
-        type: 3}
-      propertyPath: m_LocalPosition.z
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6051884441763802338, guid: c68b9d3f6b793e84b9cac7959eb00694,
-        type: 3}
-      propertyPath: m_LocalRotation.w
       value: 1
       objectReference: {fileID: 0}
-    - target: {fileID: 6051884441763802338, guid: c68b9d3f6b793e84b9cac7959eb00694,
-        type: 3}
-      propertyPath: m_LocalRotation.x
-      value: -0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6051884441763802338, guid: c68b9d3f6b793e84b9cac7959eb00694,
-        type: 3}
-      propertyPath: m_LocalRotation.y
-      value: -0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6051884441763802338, guid: c68b9d3f6b793e84b9cac7959eb00694,
-        type: 3}
-      propertyPath: m_LocalRotation.z
-      value: -0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6051884441763802338, guid: c68b9d3f6b793e84b9cac7959eb00694,
-        type: 3}
-      propertyPath: m_AnchoredPosition.x
-      value: 100
-      objectReference: {fileID: 0}
-    - target: {fileID: 6051884441763802338, guid: c68b9d3f6b793e84b9cac7959eb00694,
-        type: 3}
-      propertyPath: m_AnchoredPosition.y
-      value: -150
-      objectReference: {fileID: 0}
-    - target: {fileID: 6051884441763802338, guid: c68b9d3f6b793e84b9cac7959eb00694,
-        type: 3}
-      propertyPath: m_LocalEulerAnglesHint.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6051884441763802338, guid: c68b9d3f6b793e84b9cac7959eb00694,
-        type: 3}
-      propertyPath: m_LocalEulerAnglesHint.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6051884441763802338, guid: c68b9d3f6b793e84b9cac7959eb00694,
-        type: 3}
-      propertyPath: m_LocalEulerAnglesHint.z
-      value: 0
-      objectReference: {fileID: 0}
     - target: {fileID: 8292379019897205361, guid: c68b9d3f6b793e84b9cac7959eb00694,
         type: 3}
       propertyPath: m_Name
@@ -2156,50 +2481,9 @@ PrefabInstance:
       objectReference: {fileID: 0}
     m_RemovedComponents: []
   m_SourcePrefab: {fileID: 100100000, guid: c68b9d3f6b793e84b9cac7959eb00694, type: 3}
---- !u!224 &637711478126821773 stripped
+--- !u!224 &5259494870099924226 stripped
 RectTransform:
   m_CorrespondingSourceObject: {fileID: 6051884441763802338, guid: c68b9d3f6b793e84b9cac7959eb00694,
     type: 3}
-  m_PrefabInstance: {fileID: 6567664290511924591}
-  m_PrefabAsset: {fileID: 0}
---- !u!1 &826809494062097433 stripped
-GameObject:
-  m_CorrespondingSourceObject: {fileID: 5790623319477111158, guid: c68b9d3f6b793e84b9cac7959eb00694,
-    type: 3}
-  m_PrefabInstance: {fileID: 6567664290511924591}
-  m_PrefabAsset: {fileID: 0}
---- !u!1 &2896224852453416734 stripped
-GameObject:
-  m_CorrespondingSourceObject: {fileID: 8292379019897205361, guid: c68b9d3f6b793e84b9cac7959eb00694,
-    type: 3}
-  m_PrefabInstance: {fileID: 6567664290511924591}
-  m_PrefabAsset: {fileID: 0}
---- !u!114 &1429076432975326775
-MonoBehaviour:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 2896224852453416734}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: 7887d3f3071579846a3efd6a31f0befa, type: 3}
-  m_Name: 
-  m_EditorClassIdentifier: 
-  tname: {fileID: 3896429404325303052}
-  sceneChoose_go: {fileID: 7580868838342563817}
-  xrCamera: {fileID: 0}
-  mask: {fileID: 5449918490998897232}
-  model: {fileID: 826809494062097433}
---- !u!114 &3896429404325303052 stripped
-MonoBehaviour:
-  m_CorrespondingSourceObject: {fileID: 7870007389901651555, guid: c68b9d3f6b793e84b9cac7959eb00694,
-    type: 3}
-  m_PrefabInstance: {fileID: 6567664290511924591}
+  m_PrefabInstance: {fileID: 1946089822636538336}
   m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 0}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
-  m_Name: 
-  m_EditorClassIdentifier: 

+ 1 - 1
Assets/MRNavigatorStart/UI/SceneChoose.prefab.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: d119fe9025c8b46988af25238f3bbbfb
+guid: 96f456b250add42079205f2b7debf747
 PrefabImporter:
   externalObjects: {}
   userData: 

+ 8 - 7
Assets/MRNavigatorStart/UI/SceneChoose2.prefab

@@ -295,8 +295,8 @@ 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: 166.44547, y: -70.93866}
-  m_SizeDelta: {x: 650, y: 291}
+  m_AnchoredPosition: {x: 191, y: -152}
+  m_SizeDelta: {x: 800, y: 291}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &5444221840654658379
 CanvasRenderer:
@@ -831,7 +831,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}
+  m_AnchoredPosition: {x: 0.00096566696, y: 0}
   m_SizeDelta: {x: 0, y: 300}
   m_Pivot: {x: 0, y: 1}
 --- !u!114 &5663139974149834253
@@ -903,7 +903,7 @@ GameObject:
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
-  m_IsActive: 0
+  m_IsActive: 1
 --- !u!224 &4816971725220489674
 RectTransform:
   m_ObjectHideFlags: 0
@@ -924,9 +924,9 @@ RectTransform:
   m_Father: {fileID: 164325220502248047}
   m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
-  m_AnchorMin: {x: 0, y: 1}
-  m_AnchorMax: {x: 0, y: 1}
-  m_AnchoredPosition: {x: 125, y: -153}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
   m_SizeDelta: {x: 250, y: 150}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &667487805742182559
@@ -1215,6 +1215,7 @@ MonoBehaviour:
   cs: {fileID: 7085373591708519678}
   st: {fileID: 1943458631345546206}
   item: {fileID: 667487805742182559}
+  scrollview: {fileID: 1669385122711560165}
 --- !u!1 &7580868839341974970
 GameObject:
   m_ObjectHideFlags: 0

+ 1 - 1
Assets/MRNavigatorStart/UI/SceneChoose2.prefab.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 0437b9a0119fb4e49bac11aeef97c34a
+guid: fd23df5b911774d5ca4da50f78c96156
 PrefabImporter:
   externalObjects: {}
   userData: 

+ 1 - 0
Assets/Plugins/Android/AndroidManifest.xml

@@ -15,4 +15,5 @@
     <meta-data android:name="com.nreal.supportDevices" android:value="NrealLight|NrealAir" />
   </application>
   <uses-permission android:name="android.permission.BLUETOOTH" />
+  <uses-permission android:name="android.permission.RECORD_AUDIO" />
 </manifest>

+ 159 - 9
Assets/Prefab/BluePrefabs/SceneChooseItem.prefab

@@ -1,5 +1,122 @@
 %YAML 1.1
 %TAG !u! tag:unity3d.com,2011:
+--- !u!1 &2951888544783352676
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 6684136759487879580}
+  - component: {fileID: 7653402283518748306}
+  - component: {fileID: 8770707988409607348}
+  - component: {fileID: 6668197052986566332}
+  - component: {fileID: 1685999363290568098}
+  m_Layer: 0
+  m_Name: RawImage
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &6684136759487879580
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2951888544783352676}
+  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: 2782493701494410359}
+  m_Father: {fileID: 6051884441763802338}
+  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, y: -73}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &7653402283518748306
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2951888544783352676}
+  m_CullTransparentMesh: 1
+--- !u!114 &8770707988409607348
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2951888544783352676}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 05841a9ad3fccc44da9d0e4653f05e2a, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 0.50980395, g: 0.50980395, b: 0.50980395, a: 0.39215687}
+  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
+  Radius: 10
+--- !u!114 &6668197052986566332
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2951888544783352676}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_HorizontalFit: 2
+  m_VerticalFit: 2
+--- !u!114 &1685999363290568098
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2951888544783352676}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Padding:
+    m_Left: 10
+    m_Right: 10
+    m_Top: 10
+    m_Bottom: 10
+  m_ChildAlignment: 0
+  m_Spacing: 0
+  m_ChildForceExpandWidth: 1
+  m_ChildForceExpandHeight: 1
+  m_ChildControlWidth: 0
+  m_ChildControlHeight: 0
+  m_ChildScaleWidth: 0
+  m_ChildScaleHeight: 0
+  m_ReverseArrangement: 0
 --- !u!1 &3730795234876420181
 GameObject:
   m_ObjectHideFlags: 0
@@ -11,6 +128,7 @@ GameObject:
   - component: {fileID: 2782493701494410359}
   - component: {fileID: 8864171383284633093}
   - component: {fileID: 7870007389901651555}
+  - component: {fileID: 5187625369830895007}
   m_Layer: 5
   m_Name: Label
   m_TagString: Untagged
@@ -30,13 +148,13 @@ RectTransform:
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_ConstrainProportionsScale: 0
   m_Children: []
-  m_Father: {fileID: 6051884441763802338}
-  m_RootOrder: 1
+  m_Father: {fileID: 6684136759487879580}
+  m_RootOrder: 0
   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: -75.499916}
-  m_SizeDelta: {x: 250, y: 37}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 37.5, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &8864171383284633093
 CanvasRenderer:
@@ -79,7 +197,21 @@ MonoBehaviour:
     m_HorizontalOverflow: 1
     m_VerticalOverflow: 0
     m_LineSpacing: 1
-  m_Text: "\u5F71\u521B\u5927\u53A61F\u5C55\u5385"
+  m_Text: 12345
+--- !u!114 &5187625369830895007
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3730795234876420181}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_HorizontalFit: 2
+  m_VerticalFit: 2
 --- !u!1 &5790623319477111158
 GameObject:
   m_ObjectHideFlags: 0
@@ -190,12 +322,12 @@ Transform:
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 6519746409472233714}
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
-  m_LocalPosition: {x: 1.0813, y: -10.401699, z: 0}
+  m_LocalPosition: {x: 1.0813, y: -10.401699, z: -32}
   m_LocalScale: {x: 199.20334, y: 158.71701, z: 1}
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 6051884441763802338}
-  m_RootOrder: 0
+  m_RootOrder: 1
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!33 &1422660146785411160
 MeshFilter:
@@ -269,6 +401,7 @@ GameObject:
   serializedVersion: 6
   m_Component:
   - component: {fileID: 6051884441763802338}
+  - component: {fileID: 1429076432975326775}
   m_Layer: 0
   m_Name: SceneChooseItem
   m_TagString: Untagged
@@ -288,8 +421,8 @@ RectTransform:
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_ConstrainProportionsScale: 0
   m_Children:
+  - {fileID: 6684136759487879580}
   - {fileID: 1849393751896504500}
-  - {fileID: 2782493701494410359}
   - {fileID: 3710425949436297508}
   m_Father: {fileID: 0}
   m_RootOrder: 0
@@ -299,3 +432,20 @@ RectTransform:
   m_AnchoredPosition: {x: 0, y: 0}
   m_SizeDelta: {x: 0, y: 0}
   m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1429076432975326775
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8292379019897205361}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7887d3f3071579846a3efd6a31f0befa, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  tname: {fileID: 7870007389901651555}
+  sceneChoose_go: {fileID: 0}
+  xrCamera: {fileID: 0}
+  mask: {fileID: 0}
+  model: {fileID: 5790623319477111158}

文件差異過大導致無法顯示
+ 312 - 191
Assets/Resources/LoginPanel.prefab


+ 457 - 173
Assets/Resources/SceneChoose.prefab

@@ -1,5 +1,102 @@
 %YAML 1.1
 %TAG !u! tag:unity3d.com,2011:
+--- !u!1 &99023326990810525
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 4796151297095308763}
+  - component: {fileID: 5231857020705230135}
+  - component: {fileID: 4401533180721403518}
+  - component: {fileID: 3643931659463619144}
+  m_Layer: 0
+  m_Name: Mask
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &4796151297095308763
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 99023326990810525}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 1.0813, y: -10.401699, z: -32}
+  m_LocalScale: {x: 199.20334, y: 158.71701, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 637711478126821773}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &5231857020705230135
+MeshFilter:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 99023326990810525}
+  m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!23 &4401533180721403518
+MeshRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 99023326990810525}
+  m_Enabled: 0
+  m_CastShadows: 1
+  m_ReceiveShadows: 1
+  m_DynamicOccludee: 1
+  m_StaticShadowCaster: 0
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_RayTracingMode: 2
+  m_RayTraceProcedural: 0
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
+  m_StaticBatchInfo:
+    firstSubMesh: 0
+    subMeshCount: 0
+  m_StaticBatchRoot: {fileID: 0}
+  m_ProbeAnchor: {fileID: 0}
+  m_LightProbeVolumeOverride: {fileID: 0}
+  m_ScaleInLightmap: 1
+  m_ReceiveGI: 1
+  m_PreserveUVs: 0
+  m_IgnoreNormalsForChartDetection: 0
+  m_ImportantGI: 0
+  m_StitchLightmapSeams: 1
+  m_SelectedEditorRenderState: 3
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 0
+  m_AdditionalVertexStreams: {fileID: 0}
+--- !u!65 &3643931659463619144
+BoxCollider:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 99023326990810525}
+  m_Material: {fileID: 0}
+  m_IsTrigger: 0
+  m_Enabled: 1
+  serializedVersion: 2
+  m_Size: {x: 1, y: 1, z: 1}
+  m_Center: {x: 0, y: 0, z: 0}
 --- !u!1 &334477807531560067
 GameObject:
   m_ObjectHideFlags: 0
@@ -117,8 +214,8 @@ RectTransform:
   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: 15.9399, y: -33.046326}
-  m_SizeDelta: {x: 988.0125, y: 266.0927}
+  m_AnchoredPosition: {x: 0, y: -120}
+  m_SizeDelta: {x: 800, y: 266.0927}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &2047066537979211014
 CanvasRenderer:
@@ -268,6 +365,89 @@ MonoBehaviour:
     m_VerticalOverflow: 0
     m_LineSpacing: 1
   m_Text: "\u8BF7\u9009\u62E9\u5BFC\u89C8\u573A\u666F"
+--- !u!1 &826809494062097433
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 7519625297381157963}
+  - component: {fileID: 7037243246508889763}
+  - component: {fileID: 3885435276254352223}
+  m_Layer: 0
+  m_Name: Demo 5
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &7519625297381157963
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 826809494062097433}
+  m_LocalRotation: {x: 0.00000008146034, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 70.1, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 637711478126821773}
+  m_RootOrder: 2
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &7037243246508889763
+MeshFilter:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 826809494062097433}
+  m_Mesh: {fileID: 6417643183261216205, guid: 3b3d4d3413d974d999bed5c4b691c8a0, type: 3}
+--- !u!23 &3885435276254352223
+MeshRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 826809494062097433}
+  m_Enabled: 1
+  m_CastShadows: 1
+  m_ReceiveShadows: 1
+  m_DynamicOccludee: 1
+  m_StaticShadowCaster: 0
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_RayTracingMode: 2
+  m_RayTraceProcedural: 0
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: 1670020797688939130, guid: 3b3d4d3413d974d999bed5c4b691c8a0, type: 3}
+  m_StaticBatchInfo:
+    firstSubMesh: 0
+    subMeshCount: 0
+  m_StaticBatchRoot: {fileID: 0}
+  m_ProbeAnchor: {fileID: 0}
+  m_LightProbeVolumeOverride: {fileID: 0}
+  m_ScaleInLightmap: 1
+  m_ReceiveGI: 1
+  m_PreserveUVs: 0
+  m_IgnoreNormalsForChartDetection: 0
+  m_ImportantGI: 0
+  m_StitchLightmapSeams: 1
+  m_SelectedEditorRenderState: 3
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 0
+  m_AdditionalVertexStreams: {fileID: 0}
 --- !u!1 &1681573349418858094
 GameObject:
   m_ObjectHideFlags: 0
@@ -304,7 +484,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.00097336306, y: -0.000030517578}
+  m_AnchoredPosition: {x: -0.0009868003, y: -0.000030517578}
   m_SizeDelta: {x: 0, y: 300}
   m_Pivot: {x: 0, y: 1}
 --- !u!114 &4194415072946547016
@@ -514,6 +694,63 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   m_ShowMaskGraphic: 0
+--- !u!1 &2896224852453416734
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 637711478126821773}
+  - component: {fileID: 1429076432975326775}
+  m_Layer: 0
+  m_Name: SceneChooseItem
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 0
+--- !u!224 &637711478126821773
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2896224852453416734}
+  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: 569658176750548211}
+  - {fileID: 4796151297095308763}
+  - {fileID: 7519625297381157963}
+  m_Father: {fileID: 1100477978284410278}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 1}
+  m_AnchorMax: {x: 0, y: 1}
+  m_AnchoredPosition: {x: 100, y: -150}
+  m_SizeDelta: {x: 200, y: 300}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1429076432975326775
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2896224852453416734}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7887d3f3071579846a3efd6a31f0befa, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  tname: {fileID: 3896429404325303052}
+  sceneChoose_go: {fileID: 7580868838342563817}
+  xrCamera: {fileID: 0}
+  mask: {fileID: 5449918490998897232}
+  model: {fileID: 826809494062097433}
 --- !u!1 &3062347903703716212
 GameObject:
   m_ObjectHideFlags: 0
@@ -1256,6 +1493,101 @@ MonoBehaviour:
   m_OnClick:
     m_PersistentCalls:
       m_Calls: []
+--- !u!1 &7558013929435979066
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 9059096922789060888}
+  - component: {fileID: 2316779888673432426}
+  - component: {fileID: 3896429404325303052}
+  - component: {fileID: 2079293216400081136}
+  m_Layer: 5
+  m_Name: Label
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &9059096922789060888
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7558013929435979066}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 569658176750548211}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 37.5, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &2316779888673432426
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7558013929435979066}
+  m_CullTransparentMesh: 0
+--- !u!114 &3896429404325303052
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7558013929435979066}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, 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_FontData:
+    m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+    m_FontSize: 20
+    m_FontStyle: 1
+    m_BestFit: 0
+    m_MinSize: 2
+    m_MaxSize: 64
+    m_Alignment: 4
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 1
+    m_VerticalOverflow: 0
+    m_LineSpacing: 1
+  m_Text: 12345
+--- !u!114 &2079293216400081136
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7558013929435979066}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_HorizontalFit: 2
+  m_VerticalFit: 2
 --- !u!1 &7580868838342563817
 GameObject:
   m_ObjectHideFlags: 0
@@ -1326,6 +1658,7 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   view: {fileID: 3400979153867202484}
+  scrollview: {fileID: 509699104403403747}
 --- !u!1 &7580868839341974970
 GameObject:
   m_ObjectHideFlags: 0
@@ -1887,6 +2220,123 @@ MonoBehaviour:
     m_VerticalOverflow: 0
     m_LineSpacing: 1
   m_Text: Button
+--- !u!1 &8345787064115031563
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 569658176750548211}
+  - component: {fileID: 3536274808817273853}
+  - component: {fileID: 2491290566796429787}
+  - component: {fileID: 553720669266316243}
+  - component: {fileID: 5494629714138183885}
+  m_Layer: 0
+  m_Name: RawImage
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &569658176750548211
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8345787064115031563}
+  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: 9059096922789060888}
+  m_Father: {fileID: 637711478126821773}
+  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, y: -73}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &3536274808817273853
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8345787064115031563}
+  m_CullTransparentMesh: 1
+--- !u!114 &2491290566796429787
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8345787064115031563}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 05841a9ad3fccc44da9d0e4653f05e2a, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 0.50980395, g: 0.50980395, b: 0.50980395, a: 0.39215687}
+  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
+  Radius: 10
+--- !u!114 &553720669266316243
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8345787064115031563}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_HorizontalFit: 2
+  m_VerticalFit: 2
+--- !u!114 &5494629714138183885
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8345787064115031563}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Padding:
+    m_Left: 10
+    m_Right: 10
+    m_Top: 10
+    m_Bottom: 10
+  m_ChildAlignment: 0
+  m_Spacing: 0
+  m_ChildForceExpandWidth: 1
+  m_ChildForceExpandHeight: 1
+  m_ChildControlWidth: 0
+  m_ChildControlHeight: 0
+  m_ChildScaleWidth: 0
+  m_ChildScaleHeight: 0
+  m_ReverseArrangement: 0
 --- !u!1001 &1946089822636538336
 PrefabInstance:
   m_ObjectHideFlags: 0
@@ -1907,7 +2357,7 @@ PrefabInstance:
     - target: {fileID: 2782493701494410359, guid: c68b9d3f6b793e84b9cac7959eb00694,
         type: 3}
       propertyPath: m_RootOrder
-      value: 1
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 6051884441763802338, guid: c68b9d3f6b793e84b9cac7959eb00694,
         type: 3}
@@ -2014,136 +2464,11 @@ PrefabInstance:
       propertyPath: m_LocalEulerAnglesHint.z
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 8292379019897205361, guid: c68b9d3f6b793e84b9cac7959eb00694,
-        type: 3}
-      propertyPath: m_Name
-      value: SceneChooseItem
-      objectReference: {fileID: 0}
-    - target: {fileID: 8292379019897205361, guid: c68b9d3f6b793e84b9cac7959eb00694,
-        type: 3}
-      propertyPath: m_IsActive
-      value: 0
-      objectReference: {fileID: 0}
-    m_RemovedComponents: []
-  m_SourcePrefab: {fileID: 100100000, guid: c68b9d3f6b793e84b9cac7959eb00694, type: 3}
---- !u!224 &5259494870099924226 stripped
-RectTransform:
-  m_CorrespondingSourceObject: {fileID: 6051884441763802338, guid: c68b9d3f6b793e84b9cac7959eb00694,
-    type: 3}
-  m_PrefabInstance: {fileID: 1946089822636538336}
-  m_PrefabAsset: {fileID: 0}
---- !u!1001 &6567664290511924591
-PrefabInstance:
-  m_ObjectHideFlags: 0
-  serializedVersion: 2
-  m_Modification:
-    m_TransformParent: {fileID: 1100477978284410278}
-    m_Modifications:
-    - target: {fileID: 6051884441763802338, guid: c68b9d3f6b793e84b9cac7959eb00694,
-        type: 3}
-      propertyPath: m_Pivot.x
-      value: 0.5
-      objectReference: {fileID: 0}
-    - target: {fileID: 6051884441763802338, guid: c68b9d3f6b793e84b9cac7959eb00694,
-        type: 3}
-      propertyPath: m_Pivot.y
-      value: 0.5
-      objectReference: {fileID: 0}
-    - target: {fileID: 6051884441763802338, guid: c68b9d3f6b793e84b9cac7959eb00694,
+    - target: {fileID: 6684136759487879580, guid: c68b9d3f6b793e84b9cac7959eb00694,
         type: 3}
       propertyPath: m_RootOrder
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6051884441763802338, guid: c68b9d3f6b793e84b9cac7959eb00694,
-        type: 3}
-      propertyPath: m_AnchorMax.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6051884441763802338, guid: c68b9d3f6b793e84b9cac7959eb00694,
-        type: 3}
-      propertyPath: m_AnchorMax.y
-      value: 1
-      objectReference: {fileID: 0}
-    - target: {fileID: 6051884441763802338, guid: c68b9d3f6b793e84b9cac7959eb00694,
-        type: 3}
-      propertyPath: m_AnchorMin.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6051884441763802338, guid: c68b9d3f6b793e84b9cac7959eb00694,
-        type: 3}
-      propertyPath: m_AnchorMin.y
-      value: 1
-      objectReference: {fileID: 0}
-    - target: {fileID: 6051884441763802338, guid: c68b9d3f6b793e84b9cac7959eb00694,
-        type: 3}
-      propertyPath: m_SizeDelta.x
-      value: 200
-      objectReference: {fileID: 0}
-    - target: {fileID: 6051884441763802338, guid: c68b9d3f6b793e84b9cac7959eb00694,
-        type: 3}
-      propertyPath: m_SizeDelta.y
-      value: 300
-      objectReference: {fileID: 0}
-    - target: {fileID: 6051884441763802338, guid: c68b9d3f6b793e84b9cac7959eb00694,
-        type: 3}
-      propertyPath: m_LocalPosition.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6051884441763802338, guid: c68b9d3f6b793e84b9cac7959eb00694,
-        type: 3}
-      propertyPath: m_LocalPosition.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6051884441763802338, guid: c68b9d3f6b793e84b9cac7959eb00694,
-        type: 3}
-      propertyPath: m_LocalPosition.z
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6051884441763802338, guid: c68b9d3f6b793e84b9cac7959eb00694,
-        type: 3}
-      propertyPath: m_LocalRotation.w
       value: 1
       objectReference: {fileID: 0}
-    - target: {fileID: 6051884441763802338, guid: c68b9d3f6b793e84b9cac7959eb00694,
-        type: 3}
-      propertyPath: m_LocalRotation.x
-      value: -0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6051884441763802338, guid: c68b9d3f6b793e84b9cac7959eb00694,
-        type: 3}
-      propertyPath: m_LocalRotation.y
-      value: -0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6051884441763802338, guid: c68b9d3f6b793e84b9cac7959eb00694,
-        type: 3}
-      propertyPath: m_LocalRotation.z
-      value: -0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6051884441763802338, guid: c68b9d3f6b793e84b9cac7959eb00694,
-        type: 3}
-      propertyPath: m_AnchoredPosition.x
-      value: 100
-      objectReference: {fileID: 0}
-    - target: {fileID: 6051884441763802338, guid: c68b9d3f6b793e84b9cac7959eb00694,
-        type: 3}
-      propertyPath: m_AnchoredPosition.y
-      value: -150
-      objectReference: {fileID: 0}
-    - target: {fileID: 6051884441763802338, guid: c68b9d3f6b793e84b9cac7959eb00694,
-        type: 3}
-      propertyPath: m_LocalEulerAnglesHint.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6051884441763802338, guid: c68b9d3f6b793e84b9cac7959eb00694,
-        type: 3}
-      propertyPath: m_LocalEulerAnglesHint.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6051884441763802338, guid: c68b9d3f6b793e84b9cac7959eb00694,
-        type: 3}
-      propertyPath: m_LocalEulerAnglesHint.z
-      value: 0
-      objectReference: {fileID: 0}
     - target: {fileID: 8292379019897205361, guid: c68b9d3f6b793e84b9cac7959eb00694,
         type: 3}
       propertyPath: m_Name
@@ -2156,50 +2481,9 @@ PrefabInstance:
       objectReference: {fileID: 0}
     m_RemovedComponents: []
   m_SourcePrefab: {fileID: 100100000, guid: c68b9d3f6b793e84b9cac7959eb00694, type: 3}
---- !u!224 &637711478126821773 stripped
+--- !u!224 &5259494870099924226 stripped
 RectTransform:
   m_CorrespondingSourceObject: {fileID: 6051884441763802338, guid: c68b9d3f6b793e84b9cac7959eb00694,
     type: 3}
-  m_PrefabInstance: {fileID: 6567664290511924591}
-  m_PrefabAsset: {fileID: 0}
---- !u!1 &826809494062097433 stripped
-GameObject:
-  m_CorrespondingSourceObject: {fileID: 5790623319477111158, guid: c68b9d3f6b793e84b9cac7959eb00694,
-    type: 3}
-  m_PrefabInstance: {fileID: 6567664290511924591}
-  m_PrefabAsset: {fileID: 0}
---- !u!1 &2896224852453416734 stripped
-GameObject:
-  m_CorrespondingSourceObject: {fileID: 8292379019897205361, guid: c68b9d3f6b793e84b9cac7959eb00694,
-    type: 3}
-  m_PrefabInstance: {fileID: 6567664290511924591}
-  m_PrefabAsset: {fileID: 0}
---- !u!114 &1429076432975326775
-MonoBehaviour:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 2896224852453416734}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: 7887d3f3071579846a3efd6a31f0befa, type: 3}
-  m_Name: 
-  m_EditorClassIdentifier: 
-  tname: {fileID: 3896429404325303052}
-  sceneChoose_go: {fileID: 7580868838342563817}
-  xrCamera: {fileID: 0}
-  mask: {fileID: 5449918490998897232}
-  model: {fileID: 826809494062097433}
---- !u!114 &3896429404325303052 stripped
-MonoBehaviour:
-  m_CorrespondingSourceObject: {fileID: 7870007389901651555, guid: c68b9d3f6b793e84b9cac7959eb00694,
-    type: 3}
-  m_PrefabInstance: {fileID: 6567664290511924591}
+  m_PrefabInstance: {fileID: 1946089822636538336}
   m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 0}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
-  m_Name: 
-  m_EditorClassIdentifier: 

+ 4 - 3
Assets/Resources/SceneChoose2.prefab

@@ -295,8 +295,8 @@ 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: 166.44547, y: -70.93866}
-  m_SizeDelta: {x: 650, y: 291}
+  m_AnchoredPosition: {x: 191, y: -152}
+  m_SizeDelta: {x: 800, y: 291}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &5444221840654658379
 CanvasRenderer:
@@ -831,7 +831,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}
+  m_AnchoredPosition: {x: 0.00096566696, y: 0}
   m_SizeDelta: {x: 0, y: 300}
   m_Pivot: {x: 0, y: 1}
 --- !u!114 &5663139974149834253
@@ -1215,6 +1215,7 @@ MonoBehaviour:
   cs: {fileID: 7085373591708519678}
   st: {fileID: 1943458631345546206}
   item: {fileID: 667487805742182559}
+  scrollview: {fileID: 1669385122711560165}
 --- !u!1 &7580868839341974970
 GameObject:
   m_ObjectHideFlags: 0

文件差異過大導致無法顯示
+ 129 - 3
Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF.asset


+ 4 - 4
Assets/Texture/容器 163.png.meta

@@ -39,10 +39,10 @@ TextureImporter:
     wrapU: 0
     wrapV: 0
     wrapW: 0
-  nPOTScale: 1
+  nPOTScale: 0
   lightmap: 0
   compressionQuality: 50
-  spriteMode: 0
+  spriteMode: 1
   spriteExtrude: 1
   spriteMeshType: 1
   alignment: 0
@@ -53,7 +53,7 @@ TextureImporter:
   alphaUsage: 1
   alphaIsTransparency: 0
   spriteTessellationDetail: -1
-  textureType: 0
+  textureType: 8
   textureShape: 1
   singleChannelComponent: 0
   flipbookRows: 1
@@ -131,7 +131,7 @@ TextureImporter:
     outline: []
     physicsShape: []
     bones: []
-    spriteID: 
+    spriteID: 5e97eb03825dee720800000000000000
     internalID: 0
     vertices: []
     indices: 

+ 2 - 2
ProjectSettings/ProjectSettings.asset

@@ -949,8 +949,8 @@ PlayerSettings:
       PrivateNetworkClientServer: False
       InternetClientServer: False
       VideosLibrary: False
-      BackgroundMediaPlayback: False
       Objects3D: False
+      InternetClient: True
       RemoteSystem: False
       BlockedChatMessages: False
       PhoneCall: False
@@ -971,9 +971,9 @@ PlayerSettings:
       PointOfService: False
       RecordedCallsFolder: False
       Contacts: False
-      InternetClient: True
       Proximity: False
       CodeGeneration: False
+      BackgroundMediaPlayback: False
       EnterpriseAuthentication: False
   metroTargetDeviceFamilies: {}
   metroFTAName: 

+ 1 - 1
ProjectSettings/TagManager.asset

@@ -13,7 +13,7 @@ TagManager:
   - 
   - Water
   - UI
-  - 
+  - setbtn
   - 
   - 
   - 

部分文件因文件數量過多而無法顯示