“hujiajun” 1 year ago
parent
commit
d351f05eac
49 changed files with 1549 additions and 835 deletions
  1. 27 9
      Assets/HotUpdate/BaseTemPlate.cs
  2. 6 6
      Assets/HotUpdate/DRFanLayout.cs
  3. 3 3
      Assets/HotUpdate/DRTitleLayout.cs
  4. 19 2
      Assets/HotUpdate/DownloadResManager.cs
  5. 61 15
      Assets/HotUpdate/GameManager.cs
  6. 9 0
      Assets/HotUpdate/LoadManager.cs
  7. 23 0
      Assets/HotUpdate/LoginPanel.cs
  8. 3 3
      Assets/HotUpdate/MQTTClient.cs
  9. 4 1
      Assets/HotUpdate/ModelItem.cs
  10. 64 5
      Assets/HotUpdate/ModelList.cs
  11. 1 2
      Assets/HotUpdate/ModelManager.cs
  12. 58 50
      Assets/HotUpdate/MoveChange.cs
  13. 4 1
      Assets/HotUpdate/MovieScreen.cs
  14. 3 1
      Assets/HotUpdate/MultiPlayerManager.cs
  15. 10 5
      Assets/HotUpdate/Patch_VideoController.cs
  16. 4 0
      Assets/HotUpdate/ResMgr.cs
  17. 3 3
      Assets/HotUpdate/SRSectorLayout.cs
  18. 6 4
      Assets/HotUpdate/SavePanel.cs
  19. 10 1
      Assets/HotUpdate/SceneChoose.cs
  20. 1 0
      Assets/HotUpdate/SettingPanel.cs
  21. 1 1
      Assets/HotUpdate/ShowTipTime.cs
  22. 1 0
      Assets/HotUpdate/SpotsItem.cs
  23. 168 99
      Assets/HotUpdate/TemplateModel.cs
  24. 13 3
      Assets/HotUpdate/TemplateVideo.cs
  25. 87 0
      Assets/HotUpdate/TriLibLocalLoad.cs
  26. 11 0
      Assets/HotUpdate/TriLibLocalLoad.cs.meta
  27. 2 2
      Assets/HotUpdate/UIManager.cs
  28. 13 0
      Assets/HotUpdate/UserChooseScene.cs
  29. 1 0
      Assets/HotUpdate/UserChooseSceneItem.cs
  30. 2 0
      Assets/HotUpdate/VufroiaTrigger.cs
  31. 8 2
      Assets/HybridCLRGenerate/AOTGenericReferences.cs
  32. 16 2
      Assets/HybridCLRGenerate/link.xml
  33. 8 33
      Assets/MRNavigatorPro.unity
  34. 225 177
      Assets/MRNavigatorStart/MRNavigatorStart.prefab
  35. 312 191
      Assets/MRNavigatorStart/UI/LoginPanel.prefab
  36. 1 1
      Assets/MRNavigatorStart/UI/LoginPanel.prefab.meta
  37. 4 3
      Assets/MRNavigatorStart/UI/SceneChoose.prefab
  38. 1 1
      Assets/MRNavigatorStart/UI/SceneChoose.prefab.meta
  39. 4 3
      Assets/MRNavigatorStart/UI/SceneChoose2.prefab
  40. 1 1
      Assets/MRNavigatorStart/UI/SceneChoose2.prefab.meta
  41. 312 191
      Assets/Resources/LoginPanel.prefab
  42. 4 3
      Assets/Resources/SceneChoose.prefab
  43. 4 3
      Assets/Resources/SceneChoose2.prefab
  44. 1 1
      Assets/Resources/VuforiaConfiguration.asset
  45. 4 4
      Assets/Texture/容器 163.png.meta
  46. 12 0
      Assets/VuforiaLicense.cs
  47. 11 0
      Assets/VuforiaLicense.cs.meta
  48. 2 2
      ProjectSettings/ProjectSettings.asset
  49. 1 1
      ProjectSettings/TagManager.asset

+ 27 - 9
Assets/HotUpdate/BaseTemPlate.cs

@@ -86,15 +86,33 @@ public class BaseTemPlate : MonoBehaviour
             HideCollider();
         }
 
-        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();
+        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()

+ 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>();

+ 19 - 2
Assets/HotUpdate/DownloadResManager.cs

@@ -190,11 +190,26 @@ private bool Screen(DownLoadMaterial downloadMaterial)
         {
             if (downloadMaterial.downLoadPath == listCompletedMaterial[j].downLoadPath)
             {
-                if (LoginPanel.downloadMatList.ContainsKey(downloadMaterial.downLoadPath) &&LoginPanel.downloadMatList[downloadMaterial.downLoadPath] == listCompletedMaterial[j].updataTime)
+                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;
+
+                }
             }
         }
-        if (!finish)
+        if (!File.Exists(downloadMaterial.localLoadPath))
+        {
+
+            finish = false;
+        }
+            if (!finish)
         {
             listNotMaterial.Add(downloadMaterial);
 
@@ -287,6 +302,7 @@ public class MaterailDetail
 
 public class DownLoadMaterial
 {
+    public string name;
     public string downLoadPath { get; set; }
     public string localLoadPath { get; set; }
 
@@ -303,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);

+ 61 - 15
Assets/HotUpdate/GameManager.cs

@@ -336,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);
@@ -349,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);
@@ -451,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();
@@ -564,7 +569,10 @@ public class GameManager : MonoSingleton<GameManager>
             }else
             {
                 BatteryStateNotification = GameObject.Find("BatteryStateNotification");
-                BatteryStateNotification.SetActive(false);
+                if (BatteryStateNotification != null)
+                {
+                    BatteryStateNotification.SetActive(false);
+                }
             }
         },1,-1);
         tstart = new ThreadStart(subThread);
@@ -573,7 +581,34 @@ 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()
     {
@@ -799,6 +834,12 @@ public class GameManager : MonoSingleton<GameManager>
                                                 //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];
@@ -910,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)
             {
@@ -1085,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);
             });
@@ -1849,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;
@@ -2029,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
@@ -2101,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>();

+ 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)))
         {
 

+ 23 - 0
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);
 

+ 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)

+ 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;

+ 10 - 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,6 +64,7 @@ public class Patch_VideoController : AbstractController
                 }
                 if (boundingBox == null)
                 {
+                    
                     boundingBox = gameObject.AddComponent<BoundingBox>();
                     boundingBox.FlattenAxis = FlattenModeType.FlattenZ;
                     boundingBox.ActiveHandle = HandleType.Rotation | HandleType.Scale;
@@ -82,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);
     }
 

+ 10 - 1
Assets/HotUpdate/SceneChoose.cs

@@ -321,7 +321,7 @@ public class SceneChoose : BaseUI
         Hide();
         
     }
-
+    public RectTransform scrollview;
     private void UpdateSceneItem()
     {
         Debug.Log("UpdateSceneItem1");
@@ -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)
                 {

+ 168 - 99
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
 {
@@ -217,6 +222,7 @@ public class TemplateModel : BaseTemPlate
 
             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 = updateTime;//GameManager.Instance.m_SceneValue.updateTime;
@@ -380,7 +386,6 @@ public class TemplateModel : BaseTemPlate
     /// <param name="extractPath">解压路径</param>
     public bool ExtractZipFile(string zipFilePath)
     {
-        bool isAB=false;
         if(!zipFilePath.Contains(".zip"))
         {
             return false;
@@ -388,71 +393,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;
-                }
-                }
 
-                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);
+                    return true;
 
-                        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[]类型
@@ -495,73 +450,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);
-
-                    if (m_ModelObj && m_ModelObj.GetComponent<Animation>())
-                    {
-                        Debug.Log("Animation===>1" + m_ModelObj.name);
+                        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);
 
-                        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;
-                    }
+                        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);
             }
             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();

+ 13 - 3
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);
     }
 
@@ -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: 

+ 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());
         });
     }
     

+ 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" />

+ 8 - 33
Assets/MRNavigatorPro.unity

@@ -38,7 +38,7 @@ RenderSettings:
   m_ReflectionIntensity: 1
   m_CustomReflection: {fileID: 0}
   m_Sun: {fileID: 0}
-  m_IndirectSpecularColor: {r: 0.3708625, g: 0.37838694, b: 0.35726872, a: 1}
+  m_IndirectSpecularColor: {r: 0.4439403, g: 0.4931519, b: 0.5722083, a: 1}
   m_UseRadianceAmbientProbe: 0
 --- !u!157 &3
 LightmapSettings:
@@ -133,23 +133,18 @@ PrefabInstance:
     - target: {fileID: 4002528867949407318, guid: 9aa3328b080774e6a968fc5910820dbf,
         type: 3}
       propertyPath: m_SizeDelta.y
-      value: 10
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 4002528868015956118, guid: 9aa3328b080774e6a968fc5910820dbf,
         type: 3}
       propertyPath: m_SizeDelta.y
-      value: 10
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 4002528868567245461, guid: 9aa3328b080774e6a968fc5910820dbf,
         type: 3}
       propertyPath: m_Name
       value: MRNavigatorStart
       objectReference: {fileID: 0}
-    - target: {fileID: 4002528868567245461, guid: 9aa3328b080774e6a968fc5910820dbf,
-        type: 3}
-      propertyPath: m_IsActive
-      value: 0
-      objectReference: {fileID: 0}
     - target: {fileID: 4002528868567245462, guid: 9aa3328b080774e6a968fc5910820dbf,
         type: 3}
       propertyPath: m_RootOrder
@@ -235,30 +230,10 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 4002528869077908339, guid: 9aa3328b080774e6a968fc5910820dbf,
-        type: 3}
-      propertyPath: mats.Array.size
-      value: 3
-      objectReference: {fileID: 0}
-    - target: {fileID: 4002528869077908339, guid: 9aa3328b080774e6a968fc5910820dbf,
-        type: 3}
-      propertyPath: mats.Array.data[0]
-      value: 
-      objectReference: {fileID: 2100000, guid: 0f8ae0187a5a6c04eb7606fe00b5e5d2, type: 2}
-    - target: {fileID: 4002528869077908339, guid: 9aa3328b080774e6a968fc5910820dbf,
-        type: 3}
-      propertyPath: mats.Array.data[1]
-      value: 
-      objectReference: {fileID: 2100000, guid: 3a5a2e1c7de626148bc11b260327baca, type: 2}
-    - target: {fileID: 4002528869077908339, guid: 9aa3328b080774e6a968fc5910820dbf,
-        type: 3}
-      propertyPath: mats.Array.data[2]
-      value: 
-      objectReference: {fileID: 2100000, guid: c48bcd49845c6eb4fb04b33c70ff5e41, type: 2}
     - target: {fileID: 4002528869314084846, guid: 9aa3328b080774e6a968fc5910820dbf,
         type: 3}
       propertyPath: m_SizeDelta.y
-      value: 142
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 4002528869692624363, guid: 9aa3328b080774e6a968fc5910820dbf,
         type: 3}
@@ -293,7 +268,7 @@ PrefabInstance:
     - target: {fileID: 4002528869717850668, guid: 9aa3328b080774e6a968fc5910820dbf,
         type: 3}
       propertyPath: m_SizeDelta.y
-      value: 76
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 4002528869793121930, guid: 9aa3328b080774e6a968fc5910820dbf,
         type: 3}
@@ -494,7 +469,7 @@ PrefabInstance:
     - target: {fileID: 8995410256974986353, guid: 1e1da0ee90ebd42968dbff1f2f6a626f,
         type: 3}
       propertyPath: m_AnchorMax.y
-      value: 0
+      value: 1
       objectReference: {fileID: 0}
     - target: {fileID: 8995410257178949536, guid: 1e1da0ee90ebd42968dbff1f2f6a626f,
         type: 3}
@@ -504,7 +479,7 @@ PrefabInstance:
     - target: {fileID: 8995410257178949536, guid: 1e1da0ee90ebd42968dbff1f2f6a626f,
         type: 3}
       propertyPath: m_IsActive
-      value: 1
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 8995410257178949538, guid: 1e1da0ee90ebd42968dbff1f2f6a626f,
         type: 3}
@@ -569,7 +544,7 @@ PrefabInstance:
     - target: {fileID: 8995410258004138753, guid: 1e1da0ee90ebd42968dbff1f2f6a626f,
         type: 3}
       propertyPath: m_AnchorMax.y
-      value: 0
+      value: 1
       objectReference: {fileID: 0}
     m_RemovedComponents: []
   m_SourcePrefab: {fileID: 100100000, guid: 1e1da0ee90ebd42968dbff1f2f6a626f, type: 3}

File diff suppressed because it is too large
+ 225 - 177
Assets/MRNavigatorStart/MRNavigatorStart.prefab


File diff suppressed because it is too large
+ 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: 

+ 4 - 3
Assets/MRNavigatorStart/UI/SceneChoose.prefab

@@ -117,8 +117,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:
@@ -304,7 +304,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
@@ -1326,6 +1326,7 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   view: {fileID: 3400979153867202484}
+  scrollview: {fileID: 509699104403403747}
 --- !u!1 &7580868839341974970
 GameObject:
   m_ObjectHideFlags: 0

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

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

+ 4 - 3
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
@@ -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: 

File diff suppressed because it is too large
+ 312 - 191
Assets/Resources/LoginPanel.prefab


+ 4 - 3
Assets/Resources/SceneChoose.prefab

@@ -117,8 +117,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:
@@ -304,7 +304,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
@@ -1326,6 +1326,7 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   view: {fileID: 3400979153867202484}
+  scrollview: {fileID: 509699104403403747}
 --- !u!1 &7580868839341974970
 GameObject:
   m_ObjectHideFlags: 0

+ 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

+ 1 - 1
Assets/Resources/VuforiaConfiguration.asset

@@ -13,7 +13,7 @@ MonoBehaviour:
   m_Name: VuforiaConfiguration
   m_EditorClassIdentifier: 
   vuforia:
-    vuforiaLicenseKey: AVdaifr/////AAABmTxtN/ZN0Eg+uuJIO4iBD7dsw2+y7PFk/RTJIeK591PAPZFHjA0YUX2pybiHDZk+xm0fFr2tLCDPOwMR8S/wxajuVOXUYDkGA8NlzQiNbSfQyFSEFLS92UNrOQO0dnMwsTnZKS0VUhk+Xh9bYy4Iv7lfQ8fPvG6/DSQ/qfSrn8IbZsQ3Dl2MomN1VAO5YPXSQwjCyY8Lncu6XwJXfrxZoDvBJkDDnp5NiWhlqdiYi/ZewaJyrhAE1tImEkTKR4B4bu2VE1n8qaXCEFmRGtX2SLYiCchylxYXzYnF9DwTlLOVvY/3vXnuJ8VPhaUtAM8xIrk072ZL5lvBnVJ508LHC5vzzWJcLBI8pDmS9p6BcU1D
+    vuforiaLicenseKey: 
     ufoLicenseKey: QWRvTlZRYi8vLy8vQUFBQUtFUlVmMFlNSUUyWG5CbzJUQ2JlazFZSXptZnlBb29UdzVkdGg2bmdRWjQyWjM4eEphZjZPa2VFcDlSb2xoekRPeXZCcVlKbXQvZjduby9xbjVjNVMxVnlxZ2VhNVBiVzlBTVpJRVU5TmJCaVNxcGc4QzVXdWpySEJWOVcvT1JJZGdxbmowUVp2OHR5UytzQk9CWWlMbVJaZXErTE5MWXJSUEhlNjMzWWh0NnR3Q2RxTFRVVzFtSjNacUIwYW5pYnk3S2FhK241UDVtTXZoRzUyWkZKM2VKZk9JTXZEV05WU05wOFVOY0tyalZwRDRkeEw2Y3d5cFpDWjJub09IOUxUNVNEV2xqMDRYUnZRYXZ2UTJjVlFqUkdvc2E1NjY3TFNjQ0JqTUJFaXlFRTFtbDNhbERnQUtldllOalpoVkpadVkydnl3NzU5eVhYUXl3STZIZXFsYUh2aWxwV05EaTcrZCtFZE04bTlVanI=
     delayedInitialization: 0
     cameraFocusModeSetting: 2

+ 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: 

+ 12 - 0
Assets/VuforiaLicense.cs

@@ -0,0 +1,12 @@
+
+            //This class is auto-generated, please do not overwrite
+
+            public class VuforiaLicense
+            {
+const string license = "QVZkYWlmci8vLy8vQUFBQm1UeHROL1pOMEVnK3V1SklPNGlCRDdkc3cyK3k3UEZrL1JUSkllSzU5MVBBUFpGSGpBMFlVWDJweWJpSERaayt4bTBmRnIydExDRFBPd01SOFMvd3hhanVWT1hVWURrR0E4Tmx6UWlOYlNmUXlGU0VGTFM5MlVOck9RTzBkbk13c1RuWktTMFZVaGsrWGg5Yll5NEl2N2xmUThmUHZHNi9EU1EvcWZTcm44SWJac1EzRGwyTW9tTjFWQU81WVBYU1F3akN5WThMbmN1Nlh3Slhmcnhab0R2QkprRERucDVOaVdobHFkaVlpL1pld2FKeXJoQUUxdEltRWtUS1I0QjRidTJWRTFuOHFhWENFRm1SR3RYMlNMWWlDY2h5bHhZWHpZbkY5RHdUbExPVnZZLzN2WG51SjhWUGhhVXRBTTh4SXJrMDcyWkw1bHZCblZKNTA4TEhDNXZ6eldKY0xCSThwRG1TOXA2QmNVMUQ=";
+
+                static string GetLicenseKey()
+                {
+                    return license;
+                }
+            }

+ 11 - 0
Assets/VuforiaLicense.cs.meta

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

+ 2 - 2
ProjectSettings/ProjectSettings.asset

@@ -938,7 +938,7 @@ PlayerSettings:
   metroSplashScreenUseBackgroundColor: 1
   platformCapabilities:
     WindowsStoreApps:
-      EnterpriseAuthentication: False
+      CodeGeneration: False
       OfflineMapsManagement: False
       HumanInterfaceDevice: False
       Location: False
@@ -973,8 +973,8 @@ PlayerSettings:
       Contacts: False
       Proximity: False
       InternetClient: True
-      CodeGeneration: False
       BackgroundMediaPlayback: False
+      EnterpriseAuthentication: False
   metroTargetDeviceFamilies: {}
   metroFTAName: 
   metroFTAFileTypes: []

+ 1 - 1
ProjectSettings/TagManager.asset

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

Some files were not shown because too many files changed in this diff