Browse Source

新增邮箱模块

DGJ 1 year ago
parent
commit
14b407a87d
50 changed files with 3726 additions and 657 deletions
  1. 3 0
      Assets/Game/Blue/Action/ResetTransform.cs
  2. 1 1
      Assets/Game/Blue/Controller/Item/DeviceInfo_Item.cs
  3. 1 1
      Assets/Game/Blue/System/GetObjectSystem.cs
  4. 5 1
      Assets/Game/ScenesManager.cs
  5. 30 0
      Assets/Game/ShowChoose/ChooseManager.cs
  6. 673 353
      Assets/Game/ShowChoose/ShowChoose.prefab
  7. 2 1
      Assets/Game/ShowLogin/LangChaoLogin.cs
  8. 8 0
      Assets/Game/ShowMail.meta
  9. 231 0
      Assets/Game/ShowMail/MailUIContent.cs
  10. 11 0
      Assets/Game/ShowMail/MailUIContent.cs.meta
  11. 40 0
      Assets/Game/ShowMail/MailUIItem.cs
  12. 11 0
      Assets/Game/ShowMail/MailUIItem.cs.meta
  13. 24 0
      Assets/Game/ShowMail/MailUITitle.cs
  14. 11 0
      Assets/Game/ShowMail/MailUITitle.cs.meta
  15. 12 0
      Assets/Game/ShowMail/ShowMail.cs
  16. 11 0
      Assets/Game/ShowMail/ShowMail.cs.meta
  17. 9 9
      Assets/Game/ShowSupport/ShowRtc 1.prefab
  18. 1 1
      Assets/Game/ShowXunJian/ShowXunJian.prefab
  19. 1 1
      Assets/Game/ShowXunJian/XunJianInitialize.cs
  20. 92 194
      Assets/LangChaoRTC/TextMesh Pro/Examples & Extras/Materials/Ground - Logo Scene.mat
  21. 32 8
      Assets/Resources/Mail/Mail_Image.prefab
  22. 731 65
      Assets/Scenes/LangChaoDemo2.unity
  23. 1 1
      Assets/Scripts/Data/DataItem.cs
  24. 18 4
      Assets/Scripts/MQTT/MQTTClient.cs
  25. 165 5
      Assets/Scripts/MQTT/MQTTManager.cs
  26. 101 7
      Assets/Scripts/Mail/LangChaoMailManager.cs
  27. 6 0
      Assets/Scripts/Mail/Mail_ImageItem.cs
  28. 1 1
      Assets/Scripts/Managers/MachineRoomManager.cs
  29. 16 4
      Assets/Scripts/Managers/SynPlayerTransform.cs
  30. 8 0
      Assets/UI/240220Mail.meta
  31. BIN
      Assets/UI/240220Mail/bg-弹框.png
  32. 147 0
      Assets/UI/240220Mail/bg-弹框.png.meta
  33. BIN
      Assets/UI/240220Mail/btn-关闭.png
  34. 147 0
      Assets/UI/240220Mail/btn-关闭.png.meta
  35. BIN
      Assets/UI/240220Mail/btn-删除.png
  36. 147 0
      Assets/UI/240220Mail/btn-删除.png.meta
  37. BIN
      Assets/UI/240220Mail/btn-向右翻页.png
  38. 147 0
      Assets/UI/240220Mail/btn-向右翻页.png.meta
  39. BIN
      Assets/UI/240220Mail/btn-向左翻页.png
  40. 147 0
      Assets/UI/240220Mail/btn-向左翻页.png.meta
  41. BIN
      Assets/UI/240220Mail/关机-选中.png
  42. 147 0
      Assets/UI/240220Mail/关机-选中.png.meta
  43. BIN
      Assets/UI/240220Mail/关机.png
  44. 147 0
      Assets/UI/240220Mail/关机.png.meta
  45. BIN
      Assets/UI/240220Mail/箭头@2x.png
  46. 147 0
      Assets/UI/240220Mail/箭头@2x.png.meta
  47. BIN
      Assets/UI/240220Mail/路径-选中.png
  48. 147 0
      Assets/UI/240220Mail/路径-选中.png.meta
  49. BIN
      Assets/UI/240220Mail/路径.png
  50. 147 0
      Assets/UI/240220Mail/路径.png.meta

+ 3 - 0
Assets/Game/Blue/Action/ResetTransform.cs

@@ -8,6 +8,7 @@ public class ResetTransform : MonoBehaviour
 {
     public Transform Xunjian => SceneIOCContainer.Instance.Pull("Dof") as Transform;
 
+ 
     public bool FixedHeight;
 
     private float height;
@@ -24,6 +25,8 @@ public class ResetTransform : MonoBehaviour
     {
         if(heightIsNull)
             height = OpenXRCamera.Instance.head.position.y;
+
+     
     }
     public void Execute()
     {

+ 1 - 1
Assets/Game/Blue/Controller/Item/DeviceInfo_Item.cs

@@ -61,7 +61,7 @@ namespace GHZLangChao
 
             Debug.Log(data.ToJson());
 
-            StartCoroutine(HttpTool.Instance.SendHttp(HttpActionLang.bladeServer, data.ToJson(), BladeServerCallBack));
+         //   StartCoroutine(HttpTool.Instance.SendHttp(HttpActionLang.bladeServer, data.ToJson(), BladeServerCallBack));
            // HttpLangChaoTool.Instance.Post(HttpLangChaoAction.bladeServer, jsondata, BladeServerCallBack);
 
            

+ 1 - 1
Assets/Game/Blue/System/GetObjectSystem.cs

@@ -20,7 +20,7 @@ namespace Blue
             Xunjian.gameObject.SetActive(false);
             Xunjian.SetParent(OpenXRCamera.Instance.head.GetChild(0));
             Debug.Log("CYSB   ==> " + InstantiateSystem.Instance.BlueObject.ZeroDofPosZ);
-            Xunjian.GetComponent<RectTransform>().localPosition = new Vector3(InstantiateSystem.Instance.BlueObject.ZeroDofPosX, InstantiateSystem.Instance.BlueObject.ZeroDofPosY, 130);
+            Xunjian.GetComponent<RectTransform>().localPosition = new Vector3(InstantiateSystem.Instance.BlueObject.ZeroDofPosX, -300, 130);
         }
 
         private void PushIOC()

+ 5 - 1
Assets/Game/ScenesManager.cs

@@ -15,6 +15,7 @@ public class ScenesManager
         ShowRTC = 5,
         ShowDevice = 6,
         Navigationing = 8,
+        ShowMail = 10,
         officeInt = 30,
         RoomInt = 40,
         publicInt = 50,
@@ -67,7 +68,7 @@ public class ScenesManager
         DeviceDetails = 61002, // 设备详情
         Navigationing = 80001, // 导航中
 
-
+        ShowMail = 90001,
 
         ShowOffice = 300001,
         CreateRoom = 300101,
@@ -217,6 +218,9 @@ public class ScenesManager
                 break;
             case SceneType.PopCall:
                 break;
+            case SceneType.ShowMail:
+                XRRGBCamera.Instance.playCamera(1280, 720);
+                break;
             default:
                 break;
         }

+ 30 - 0
Assets/Game/ShowChoose/ChooseManager.cs

@@ -14,6 +14,8 @@ public class ChooseManager : MonoBehaviour,IController
     [SerializeField] private Toggle ShowHide_Toggle;
 
     public UnityEvent OnReset = new UnityEvent();
+
+   
     private IQueueSystem mQueueSystem;
     void Awake()
     {
@@ -30,12 +32,22 @@ public class ChooseManager : MonoBehaviour,IController
         mQueueSystem.Level3QueueCount.Register(mQueueSystemCountNotNull).UnRegisterWhenGameObjectDestroyed(gameObject);
 
         SceneIOCContainer.Instance.Push("ShowChoose",gameObject);
+
+      
     }
 
+   
+    
+
     public void GotoXunJian()
     {
         ScenesManager.Instance.showWindow(ScenesManager.SceneType.ShowXunJian);
     }
+
+    public void GotoMail()
+    {
+        ScenesManager.Instance.showWindow(ScenesManager.SceneType.ShowMail);
+    }
     public void GetInspectionInfo()
     {
         //  this.GetService<IInspectionService>().Get();
@@ -92,14 +104,32 @@ public class ChooseManager : MonoBehaviour,IController
         ShowHideLevel3(true);
     }
 
+    bool init = false;
     private void Update()
     {
+        if (MQTTManager.Instance.isCreateRoom && !init)
+        {
+            Debug.Log("XXXXXXXXXXXXXXXX");
+            init = true;
+            StartCoroutine(CreateRoom());
+        }
+
+
         if (Test) return;
 #if UNITY_EDITOR
             return;
 #endif
         OnReset?.Invoke();
+
+       
     }
+
+    private IEnumerator CreateRoom()
+    {
+        yield return new WaitForSeconds(1);
+        UICallManager.Instance.EventInvite("", "");
+    }
+   
     private void ShowHideLevel3(bool on)
     {
         Debug.Log("Level3Queue:"+mQueueSystem.Level3List.Count);

File diff suppressed because it is too large
+ 673 - 353
Assets/Game/ShowChoose/ShowChoose.prefab


+ 2 - 1
Assets/Game/ShowLogin/LangChaoLogin.cs

@@ -40,6 +40,7 @@ namespace GHZLangChao
             //mAccountStr = "13910723157";
             //mPasswordStr = "1";
             mAccountStr = "lisongnan";
+            //mAccountStr = "guohaipeng";
             mPasswordStr = "13579Wp!#%&(";
 #if UNITY_EDITOR
             // OnClickLogin();
@@ -106,7 +107,7 @@ namespace GHZLangChao
                 GameStart.Instance.StartCoroutine(HttpTool.Instance.SendHttp(HttpActionLang.userinfo, "", UserInfoCallBack));
                 JsonData data = new JsonData();
                 data["id"] = 1;
-                HttpTool.Instance.Post(HttpActionLang.sceneInit, data.ToJson(), MachineRoomManager.Instance.SceneInitCallBack);
+            //    HttpTool.Instance.Post(HttpActionLang.sceneInit, data.ToJson(), MachineRoomManager.Instance.SceneInitCallBack);
             }
         }
 

+ 8 - 0
Assets/Game/ShowMail.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: c8a84fd44bb3c6447bebb1f131cc27ad
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 231 - 0
Assets/Game/ShowMail/MailUIContent.cs

@@ -0,0 +1,231 @@
+using System.Collections;
+using System.Collections.Generic;
+using TMPro;
+using UnityEngine;
+using UnityEngine.UI;
+
+public class MailUIContent : MonoSingleton<MailUIContent>
+{
+
+    public MailUIItem mailItem;
+
+    public Transform uiContent;
+
+    public ScrollRect scrollRect;
+    public RectTransform contentPanel;
+    public RectTransform sampleListItem;
+    public HorizontalLayoutGroup HLG;
+
+    public Button leftNextBtn;
+    public Button rightNextBtn;
+    public Button delBtn;
+
+    public TMP_Text page;
+    public TMP_Text titleName;
+    public TMP_Text errorMsg;
+    public TMP_Text levelText;
+    public TMP_Text timeText;
+    public Image levelImage;
+
+    public GameObject mailUI;
+
+    public float snapFore;
+    float snapSpeed = 0;
+    bool isSnapped;
+   public  int currentItem;
+
+    public GameObject unread;
+    public TMP_Text unreadText;
+    public float unreadNum;
+
+    public GameObject ShowMailUIColor;
+    public GameObject ShowImagePoint;
+
+    public GameObject CloseSync;
+
+    public GameObject MailShow;
+    public GameObject MailNull;
+
+    LangChaoMailItem nowItem;
+
+  
+    private void Start()
+    {
+        unreadNum = 0;
+        LangChaoMailManager.Instance.mailUIItem = mailItem;
+        LangChaoMailManager.Instance.mailContent = uiContent;
+        LangChaoMailManager.Instance.showImagePoint = ShowImagePoint.transform;
+        leftNextBtn.onClick.AddListener(()=> { NetPage(true);});
+        rightNextBtn.onClick.AddListener(() => { NetPage(false);});
+        delBtn.onClick.AddListener(() => { DelItem(); });
+    }
+
+
+    private void Update()
+    {
+         currentItem = Mathf.RoundToInt((0 - contentPanel.localPosition.x / (sampleListItem.rect.width + HLG.spacing)));
+
+        if (scrollRect.velocity.magnitude < 200&& !isSnapped)
+        {
+            scrollRect.velocity = Vector2.zero;
+            snapSpeed += snapFore * Time.deltaTime;
+            contentPanel.localPosition = new Vector3(Mathf.MoveTowards(contentPanel.localPosition.x, 0 - (currentItem * (sampleListItem.rect.width + HLG.spacing)), snapSpeed), contentPanel.localPosition.y,contentPanel.localPosition.z);
+            if (contentPanel.localPosition.x == 0 - (currentItem * (sampleListItem.rect.width + HLG.spacing)))
+            {
+                isSnapped = false;
+
+             
+            }
+          //  Debug.Log(LangChaoMailManager.Instance.listMailItem.Count);
+            if (LangChaoMailManager.Instance.listMailItem.Count > currentItem && mailUI.activeSelf)
+            {
+                if (nowItem != LangChaoMailManager.Instance.listMailItem[currentItem])
+                {
+                    nowItem = LangChaoMailManager.Instance.listMailItem[currentItem];
+                    UpdateUI();
+                }
+
+            }
+        }
+        if(scrollRect.velocity.magnitude > 200)
+        {
+            isSnapped = false;
+          
+            snapSpeed = 0;
+        }
+    }
+
+    public void UpdateUI()
+    {
+        UpdatePage();
+
+
+        System.DateTime startTime = System.TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1));//获取时间戳
+        System.DateTime dt = startTime.AddMilliseconds(nowItem.timestamp);
+
+        timeText.text = dt.Year + "-" + dt.Month + "-" + dt.Day + "  " + dt.Hour + ":" + dt.Minute + ":" + dt.Second;
+
+        if (nowItem.title != null)
+        {
+            levelText.gameObject.SetActive(true);
+            levelImage.gameObject.SetActive(true);
+            titleName.gameObject.SetActive(true);
+            errorMsg.gameObject.SetActive(true);
+
+            Color color;
+            switch (nowItem.level)
+            {
+                case 4:
+                    levelText.text = "低级";
+                    ColorUtility.TryParseHtmlString("27CFE3", out color);
+                    break;
+                case 3:
+                    levelText.text = "中级";
+                    ColorUtility.TryParseHtmlString("F1B720", out color);
+                    break;
+                case 2:
+                    levelText.text = "高级";
+                    ColorUtility.TryParseHtmlString("DA791E", out color);
+                    break;
+                case 1:
+                    levelText.text = "重大";
+                    ColorUtility.TryParseHtmlString("ED5254", out color);
+                    break;
+                default:
+                    break;
+            }
+            titleName.text = nowItem.title;
+            errorMsg.text = "设备位置: " + nowItem.room + "/" + nowItem.rack + "/" + nowItem.u_addr;
+        }
+        else
+        {
+            levelText.gameObject.SetActive(false);
+            levelImage.gameObject.SetActive(false);
+            titleName.gameObject.SetActive(false);
+            errorMsg.gameObject.SetActive(false);
+        }
+
+        if (nowItem.isShow == false)
+        {
+            nowItem.isShow = true;
+
+            ShowUnread(-1);
+        }
+
+
+    }
+
+    public void NetPage( bool isleft)
+    {
+        if (isleft)
+        {
+            contentPanel.localPosition += new Vector3(sampleListItem.rect.width + HLG.spacing, 0, 0);
+        }
+        else
+        {
+            contentPanel.localPosition -= new Vector3(sampleListItem.rect.width + HLG.spacing, 0, 0);
+        }
+    }
+
+    public void DelItem()
+    {
+        if (nowItem == null)
+            return;
+        LangChaoMailManager.Instance.RemoveMail(nowItem);
+        nowItem = null;
+        currentItem = Mathf.RoundToInt((0 - contentPanel.localPosition.x / (sampleListItem.rect.width + HLG.spacing)));
+        UpdatePage();
+        if (LangChaoMailManager.Instance.listMailItem.Count > currentItem)
+        {
+           
+            nowItem = LangChaoMailManager.Instance.listMailItem[currentItem];
+            UpdateUI();
+        }
+
+        if (LangChaoMailManager.Instance.listMailItem.Count < 1)
+        {
+            levelText.gameObject.SetActive(false);
+            levelImage.gameObject.SetActive(false);
+            titleName.gameObject.SetActive(false);
+            errorMsg.gameObject.SetActive(false);
+        }
+          
+    }
+
+    public void UpdatePage()
+    {
+        page.text = (currentItem+1).ToString() + "/" + LangChaoMailManager.Instance.listMailItem.Count.ToString();
+    }
+
+
+    public void ShowMailUI(GameObject mailUI)
+    {
+        mailUI.SetActive(!mailUI.activeSelf);
+
+        ShowMailUIColor.SetActive(mailUI.activeSelf);
+    }
+
+    public void ShowUnread( int num)
+    {
+        unreadNum += num;
+        if(unreadNum > 0)
+        {
+            unread.SetActive(true);
+        }
+        else
+        {
+           
+            unread.SetActive(false);
+            unreadNum = 0;
+        }
+
+        unreadText.text = unreadNum.ToString();
+
+    }
+    
+    public void StopSync()
+    {
+        SynPlayerTransform.Instance.StoPushOnClick();
+      //  CloseSync.gameObject.SetActive(false);
+    }
+}

+ 11 - 0
Assets/Game/ShowMail/MailUIContent.cs.meta

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

+ 40 - 0
Assets/Game/ShowMail/MailUIItem.cs

@@ -0,0 +1,40 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UI;
+
+public class MailUIItem : MonoBehaviour
+{
+    public RawImage baseImage;
+    public LangChaoMailItem ItemData;
+    Texture2D pic;
+
+    public void SettingData(LangChaoMailItem data)
+    {
+        this.ItemData = data;
+
+        //   StartCoroutine(LoadImage());
+        pic = new Texture2D(190, 190, TextureFormat.RGBA32, false);
+        byte[] picdata;
+        if (data.imageData.Contains("data:image"))
+        {
+            string[] result = ItemData.imageData.Split(',');
+          
+             picdata = System.Convert.FromBase64String(result[1].Trim('\0'));
+        }
+        else
+        {
+            picdata = System.Convert.FromBase64String(ItemData.imageData.Trim('\0'));
+        }
+        pic.LoadImage(picdata);
+        baseImage.texture = pic;
+
+        this.GetComponent<Button>().onClick.AddListener(ButtonOnClick);
+
+    }
+
+    private void ButtonOnClick()
+    {
+        LangChaoMailManager.Instance.ShowImage(ItemData, pic);
+    }
+}

+ 11 - 0
Assets/Game/ShowMail/MailUIItem.cs.meta

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

+ 24 - 0
Assets/Game/ShowMail/MailUITitle.cs

@@ -0,0 +1,24 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using TMPro;
+using UnityEngine.UI;
+using Newtonsoft.Json.Linq;
+
+public class MailUITitle : MonoBehaviour
+{
+    public TMP_Text timesText;
+    public TMP_Text levelText;
+    public TMP_Text titleText;
+    public TMP_Text errorText;
+    public TMP_Text pageText;
+
+    public Image levelImage;
+
+
+    public void SettingData(JObject objData)
+    {
+        // ²ð½âÉèÖÃ
+
+    }
+}

+ 11 - 0
Assets/Game/ShowMail/MailUITitle.cs.meta

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

+ 12 - 0
Assets/Game/ShowMail/ShowMail.cs

@@ -0,0 +1,12 @@
+using SC.XR.Unity;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class ShowMail : RemoteSingleton<ShowMail>
+{
+    public override void initShow()
+    {
+        base.initShow();
+    }
+}

+ 11 - 0
Assets/Game/ShowMail/ShowMail.cs.meta

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

+ 9 - 9
Assets/Game/ShowSupport/ShowRtc 1.prefab

@@ -930,9 +930,9 @@ RectTransform:
   m_Father: {fileID: 372168226550290580}
   m_RootOrder: 2
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
-  m_AnchorMin: {x: 0, y: 0}
-  m_AnchorMax: {x: 0, y: 0}
-  m_AnchoredPosition: {x: 0, y: 0}
+  m_AnchorMin: {x: 0, y: 1}
+  m_AnchorMax: {x: 0, y: 1}
+  m_AnchoredPosition: {x: 1034.8295, y: -420}
   m_SizeDelta: {x: 1600, y: 144}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &2467664462275900261
@@ -1519,9 +1519,9 @@ RectTransform:
   m_Father: {fileID: 372168226550290580}
   m_RootOrder: 1
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
-  m_AnchorMin: {x: 0, y: 0}
-  m_AnchorMax: {x: 0, y: 0}
-  m_AnchoredPosition: {x: 0, y: 0}
+  m_AnchorMin: {x: 0, y: 1}
+  m_AnchorMax: {x: 0, y: 1}
+  m_AnchoredPosition: {x: 1034.8295, y: -246}
   m_SizeDelta: {x: 1600, y: 144}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &2792716997211558038
@@ -2593,9 +2593,9 @@ RectTransform:
   m_Father: {fileID: 372168226550290580}
   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: 0, y: 0}
+  m_AnchorMin: {x: 0, y: 1}
+  m_AnchorMax: {x: 0, y: 1}
+  m_AnchoredPosition: {x: 1034.8295, y: -72}
   m_SizeDelta: {x: 1600, y: 144}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &1586159309132858650

+ 1 - 1
Assets/Game/ShowXunJian/ShowXunJian.prefab

@@ -8415,7 +8415,7 @@ 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: 0, y: 0}
+  m_AnchoredPosition: {x: 295, y: 469}
   m_SizeDelta: {x: 1468, y: 1020}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &5466424356445212233

+ 1 - 1
Assets/Game/ShowXunJian/XunJianInitialize.cs

@@ -62,7 +62,7 @@ public class XunJianInitialize :MonoSingleton<XunJianInitialize>
         }
 #if UNITY_EDITOR
         //if (Test) return;
-        return;
+       // return;
 #endif
         OnReset?.Invoke();
 

+ 92 - 194
Assets/LangChaoRTC/TextMesh Pro/Examples & Extras/Materials/Ground - Logo Scene.mat

@@ -2,206 +2,104 @@
 %TAG !u! tag:unity3d.com,2011:
 --- !u!21 &2100000
 Material:
-  serializedVersion: 6
+  serializedVersion: 8
   m_ObjectHideFlags: 0
-  m_PrefabParentObject: {fileID: 0}
-  m_PrefabInternal: {fileID: 0}
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
   m_Name: Ground - Logo Scene
   m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
-  m_ShaderKeywords: _NORMALMAP
-  m_LightmapFlags: 5
+  m_ValidKeywords:
+  - _EMISSION
+  m_InvalidKeywords: []
+  m_LightmapFlags: 1
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
   m_CustomRenderQueue: -1
   stringTagMap: {}
+  disabledShaderPasses: []
   m_SavedProperties:
-    serializedVersion: 2
+    serializedVersion: 3
     m_TexEnvs:
-      data:
-        first:
-          name: _MainTex
-        second:
-          m_Texture: {fileID: 2800000, guid: 1cdc5b506b1a4a33a53c30669ced1f51, type: 3}
-          m_Scale: {x: 20, y: 20}
-          m_Offset: {x: 0, y: 0}
-      data:
-        first:
-          name: _BumpMap
-        second:
-          m_Texture: {fileID: 2800000, guid: 8b8c8a10edf94ddc8cc4cc4fcd5696a9, type: 3}
-          m_Scale: {x: 30, y: 50}
-          m_Offset: {x: 0, y: 0}
-      data:
-        first:
-          name: _DetailNormalMap
-        second:
-          m_Texture: {fileID: 0}
-          m_Scale: {x: 1, y: 1}
-          m_Offset: {x: 0, y: 0}
-      data:
-        first:
-          name: _ParallaxMap
-        second:
-          m_Texture: {fileID: 0}
-          m_Scale: {x: 1, y: 1}
-          m_Offset: {x: 0, y: 0}
-      data:
-        first:
-          name: _OcclusionMap
-        second:
-          m_Texture: {fileID: 0}
-          m_Scale: {x: 1, y: 1}
-          m_Offset: {x: 0, y: 0}
-      data:
-        first:
-          name: _EmissionMap
-        second:
-          m_Texture: {fileID: 0}
-          m_Scale: {x: 1, y: 1}
-          m_Offset: {x: 0, y: 0}
-      data:
-        first:
-          name: _DetailMask
-        second:
-          m_Texture: {fileID: 0}
-          m_Scale: {x: 1, y: 1}
-          m_Offset: {x: 0, y: 0}
-      data:
-        first:
-          name: _DetailAlbedoMap
-        second:
-          m_Texture: {fileID: 0}
-          m_Scale: {x: 1, y: 1}
-          m_Offset: {x: 0, y: 0}
-      data:
-        first:
-          name: _MetallicGlossMap
-        second:
-          m_Texture: {fileID: 0}
-          m_Scale: {x: 1, y: 1}
-          m_Offset: {x: 0, y: 0}
-      data:
-        first:
-          name: _BorderTex
-        second:
-          m_Texture: {fileID: 0}
-          m_Scale: {x: 1, y: 1}
-          m_Offset: {x: 0, y: 0}
-      data:
-        first:
-          name: _FillTex
-        second:
-          m_Texture: {fileID: 0}
-          m_Scale: {x: 1, y: 1}
-          m_Offset: {x: 0, y: 0}
-      data:
-        first:
-          name: _EdgeTex
-        second:
-          m_Texture: {fileID: 0}
-          m_Scale: {x: 1, y: 1}
-          m_Offset: {x: 0, y: 0}
+    - _BorderTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _BumpMap:
+        m_Texture: {fileID: 2800000, guid: 8b8c8a10edf94ddc8cc4cc4fcd5696a9, type: 3}
+        m_Scale: {x: 30, y: 50}
+        m_Offset: {x: 0, y: 0}
+    - _DetailAlbedoMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailMask:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailNormalMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _EdgeTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _EmissionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _FillTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MainTex:
+        m_Texture: {fileID: 2800000, guid: 1cdc5b506b1a4a33a53c30669ced1f51, type: 3}
+        m_Scale: {x: 20, y: 20}
+        m_Offset: {x: 0, y: 0}
+    - _MetallicGlossMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _OcclusionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _ParallaxMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    m_Ints: []
     m_Floats:
-      data:
-        first:
-          name: _SrcBlend
-        second: 1
-      data:
-        first:
-          name: _DstBlend
-        second: 0
-      data:
-        first:
-          name: _Radius
-        second: 0
-      data:
-        first:
-          name: _Cutoff
-        second: .5
-      data:
-        first:
-          name: _Shininess
-        second: .220354751
-      data:
-        first:
-          name: _Parallax
-        second: .0199999996
-      data:
-        first:
-          name: _ZWrite
-        second: 1
-      data:
-        first:
-          name: _Glossiness
-        second: .344000012
-      data:
-        first:
-          name: _BumpScale
-        second: 1
-      data:
-        first:
-          name: _OcclusionStrength
-        second: 1
-      data:
-        first:
-          name: _DetailNormalMapScale
-        second: 1
-      data:
-        first:
-          name: _UVSec
-        second: 0
-      data:
-        first:
-          name: _Mode
-        second: 0
-      data:
-        first:
-          name: _Metallic
-        second: 0
-      data:
-        first:
-          name: _EmissionScaleUI
-        second: 0
-      data:
-        first:
-          name: _EdgeSoftness
-        second: 0
-      data:
-        first:
-          name: _DiffusePower
-        second: 1
-      data:
-        first:
-          name: _Border
-        second: .0214285739
-      data:
-        first:
-          name: _Size
-        second: .100000001
-      data:
-        first:
-          name: _EdgeWidth
-        second: 0
+    - _Border: 0.021428574
+    - _BumpScale: 1
+    - _Cutoff: 0.5
+    - _DetailNormalMapScale: 1
+    - _DiffusePower: 1
+    - _DstBlend: 0
+    - _EdgeSoftness: 0
+    - _EdgeWidth: 0
+    - _EmissionScaleUI: 0
+    - _GlossMapScale: 1
+    - _Glossiness: 0.344
+    - _GlossyReflections: 1
+    - _Metallic: 0
+    - _Mode: 0
+    - _OcclusionStrength: 1
+    - _Parallax: 0.02
+    - _Radius: 0
+    - _Shininess: 0.22035475
+    - _Size: 0.1
+    - _SmoothnessTextureChannel: 0
+    - _SpecularHighlights: 1
+    - _SrcBlend: 1
+    - _UVSec: 0
+    - _ZWrite: 1
     m_Colors:
-      data:
-        first:
-          name: _EmissionColor
-        second: {r: 0, g: 0, b: 0, a: 0}
-      data:
-        first:
-          name: _Color
-        second: {r: 1, g: 1, b: 1, a: 1}
-      data:
-        first:
-          name: _SpecColor
-        second: {r: .5, g: .5, b: .5, a: 1}
-      data:
-        first:
-          name: _EmissionColorUI
-        second: {r: 1, g: 1, b: 1, a: 1}
-      data:
-        first:
-          name: _FaceColor
-        second: {r: 1, g: 1, b: 1, a: 1}
-      data:
-        first:
-          name: _BorderColor
-        second: {r: 0, g: 0, b: 0, a: 1}
+    - _BorderColor: {r: 0, g: 0, b: 0, a: 1}
+    - _Color: {r: 1, g: 1, b: 1, a: 1}
+    - _EmissionColor: {r: 0, g: 0, b: 0, a: 0}
+    - _EmissionColorUI: {r: 1, g: 1, b: 1, a: 1}
+    - _FaceColor: {r: 1, g: 1, b: 1, a: 1}
+    - _SpecColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
+  m_BuildTextureStacks: []

+ 32 - 8
Assets/Resources/Mail/Mail_Image.prefab

@@ -93,7 +93,7 @@ GameObject:
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
-  m_IsActive: 1
+  m_IsActive: 0
 --- !u!224 &2283116017366872121
 RectTransform:
   m_ObjectHideFlags: 0
@@ -252,7 +252,7 @@ GameObject:
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
-  m_IsActive: 1
+  m_IsActive: 0
 --- !u!4 &2283116017620586623
 Transform:
   m_ObjectHideFlags: 0
@@ -262,7 +262,7 @@ Transform:
   m_GameObject: {fileID: 2283116017620586622}
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
   m_LocalPosition: {x: 0.4, y: 0, z: 0.8}
-  m_LocalScale: {x: 15, y: 15, z: 15}
+  m_LocalScale: {x: 30, y: 30, z: 30}
   m_ConstrainProportionsScale: 0
   m_Children:
   - {fileID: 7501303589197907794}
@@ -285,8 +285,8 @@ BoxCollider:
   m_IsTrigger: 0
   m_Enabled: 1
   serializedVersion: 2
-  m_Size: {x: 0.07000965, y: 0.044130176, z: 0.00060388073}
-  m_Center: {x: -0.00012241345, y: 0.002755909, z: -0.00357868}
+  m_Size: {x: 0.05649338, y: 0.027862685, z: 0.000603881}
+  m_Center: {x: 0.00050333346, y: -0.00012747, z: -0.00357868}
 --- !u!114 &2283116017620586618
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -361,7 +361,19 @@ MonoBehaviour:
   m_EditorClassIdentifier: 
   PointerEnter:
     m_PersistentCalls:
-      m_Calls: []
+      m_Calls:
+      - m_Target: {fileID: 5548528980826865798}
+        m_TargetAssemblyTypeName: UnityEngine.GameObject, UnityEngine
+        m_MethodName: SetActive
+        m_Mode: 6
+        m_Arguments:
+          m_ObjectArgument: {fileID: 0}
+          m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
+          m_IntArgument: 0
+          m_FloatArgument: 0
+          m_StringArgument: 
+          m_BoolArgument: 1
+        m_CallState: 2
   PointerDown:
     m_PersistentCalls:
       m_Calls: []
@@ -373,7 +385,19 @@ MonoBehaviour:
       m_Calls: []
   PointerExit:
     m_PersistentCalls:
-      m_Calls: []
+      m_Calls:
+      - m_Target: {fileID: 5548528980826865798}
+        m_TargetAssemblyTypeName: UnityEngine.GameObject, UnityEngine
+        m_MethodName: SetActive
+        m_Mode: 6
+        m_Arguments:
+          m_ObjectArgument: {fileID: 0}
+          m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
+          m_IntArgument: 0
+          m_FloatArgument: 0
+          m_StringArgument: 
+          m_BoolArgument: 0
+        m_CallState: 2
   PointerDrag:
     m_PersistentCalls:
       m_Calls: []
@@ -589,7 +613,7 @@ RectTransform:
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 90}
   m_AnchorMin: {x: 0.5, y: 0.5}
   m_AnchorMax: {x: 0.5, y: 0.5}
-  m_AnchoredPosition: {x: -0.003, y: -0.022}
+  m_AnchoredPosition: {x: 0.02398, y: 0.00994}
   m_SizeDelta: {x: 0.05, y: 0.05}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &83601608496294690

File diff suppressed because it is too large
+ 731 - 65
Assets/Scenes/LangChaoDemo2.unity


+ 1 - 1
Assets/Scripts/Data/DataItem.cs

@@ -175,7 +175,7 @@ public class DataItem : MonoBehaviour
             string data = JsonConvert.SerializeObject(updateData);
             machineParameters.offsetPos = offsetPos;
 
-            HttpTool.Instance.Post(HttpActionLang.updateCabinet, data, UpdateCabinetCallBack);
+        //    HttpTool.Instance.Post(HttpActionLang.updateCabinet, data, UpdateCabinetCallBack);
         }
            
 

+ 18 - 4
Assets/Scripts/MQTT/MQTTClient.cs

@@ -64,7 +64,16 @@ public class MQTTClient : MonoSingleton<MQTTClient>
        //Subscribe(MQTTManager.Instance.front + "personnel/" + MQTTManager.Instance.resourcePool);
         Subscribe(MQTTManager.Instance.front + "personnel/" + MQTTManager.Instance.resourcePoolId);
         Subscribe(MQTTManager.Instance.front + "online/" + MQTTManager.Instance.id);
-        Subscribe((MQTTManager.Instance.front + "younuo"));
+
+        if (!string.IsNullOrEmpty( MQTTManager.Instance.topiceNavigation))
+        {
+            Subscribe(MQTTManager.Instance.topiceNavigation);
+            Subscribe(MQTTManager.Instance.topiceSync);
+            Subscribe(MQTTManager.Instance.topiceClose);
+        }
+
+        // Subscribe((MQTTManager.Instance.front + "younuo"));
+        MQTTManager.Instance.isCreateRoom = true;
     }
 
 
@@ -91,7 +100,8 @@ public class MQTTClient : MonoSingleton<MQTTClient>
         string msg = Encoding.UTF8.GetString(obj.Message);
         Debug.Log("uid => " + obj.Topic + ":\n" + msg);
      //   UILogManager.Instance.text3.text = msg;
-        MQTTManager.Instance.Received(msg);
+      //  MQTTManager.Instance.Received(msg);
+        MQTTManager.Instance.Received(obj);
     }
 
     private void OnDestroy()
@@ -186,12 +196,16 @@ public class MQTTClient : MonoSingleton<MQTTClient>
 
             
             Debug.Log(" DGJ   =====> Subscribe2");
+
+
+          
         }
         else
             Debug.LogError(" MQTT 未连接 !!!");
-            
 
-      
+     
+
+
     }
 
     public void UnSubscribe(string channelID)

+ 165 - 5
Assets/Scripts/MQTT/MQTTManager.cs

@@ -7,6 +7,7 @@ using System.Text;
 using UnityEngine;
 using static LangChaoRommMinIo;
 using Blue;
+using uPLibrary.Networking.M2Mqtt.Messages;
 
 public class MQTTManager : MonoSingleton<MQTTManager>,IController
 {
@@ -29,6 +30,12 @@ public class MQTTManager : MonoSingleton<MQTTManager>,IController
     public string room;
     public static string certification;
 
+    public string topiceNavigation;
+    public string topiceSync;
+    public string topiceClose;
+
+
+   public  bool isCreateRoom = false;
     /// <summary>
     ///  获取信令
     /// </summary>
@@ -36,11 +43,12 @@ public class MQTTManager : MonoSingleton<MQTTManager>,IController
     {
         GameStart.Instance.StartCoroutine(HttpTool.Instance.SendHttp(HttpActionLang.signal_certification, "", SignalCallBack));
 
-      //  GameStart.Instance.StartCoroutine(HttpTool.Instance.SendHttp(HttpActionLang.userinfo, "", UserInfoCallBack));
+
+      
+        //  GameStart.Instance.StartCoroutine(HttpTool.Instance.SendHttp(HttpActionLang.userinfo, "", UserInfoCallBack));
         // HttpTool.Instance.PostMqtt(HttpAction.signal_certification, "", SignalCallBack);
     }
 
-
     public void SetAccoutInfo(string account)
     {
         MQTTManager.Instance.account = account;
@@ -58,9 +66,21 @@ public class MQTTManager : MonoSingleton<MQTTManager>,IController
             MQTTManager.Instance.front = obj["data"]["topicPrefix"].ToString();
             MQTTManager.Instance.clientId = obj["data"]["clientId"].ToString();
             MQTTManager.Instance.username = obj["data"]["username"].ToString();
+
+         
+            if (!string.IsNullOrEmpty( obj["data"]["uinoTopics"].ToString()))
+            {
+                topiceNavigation = obj["data"]["uinoTopics"]["navigation"].ToString();
+                topiceSync = obj["data"]["uinoTopics"]["sync"].ToString();
+                topiceClose = obj["data"]["uinoTopics"]["close"].ToString();
+            }
+        
+
             MQTTClient.Instance.Connect();
 
-          //  StartCoroutine(TestCreateRoom());
+          
+
+            //  StartCoroutine(TestCreateRoom());
         }
         else
         {
@@ -269,13 +289,153 @@ public class MQTTManager : MonoSingleton<MQTTManager>,IController
                 break;
         }
 
-        if (obj["image_data"] != null)
+        if (obj["image_data"]!=null&&!string.IsNullOrEmpty( obj["image_data"].ToString()))
         {
-
+            UILogManager.Instance.text2.text = msg;
             SynPlayerTransform.Instance.isPushPos = true;
 
             LangChaoMailManager.Instance.ReceiverMail(obj);
            
         }
     }
+
+    public void Received(MqttMsgPublishEventArgs MsgData)
+    {
+        string msg = Encoding.UTF8.GetString(MsgData.Message);
+        JObject obj = JObject.Parse(msg);
+
+        // Debug.Log("Received  ===>  " + obj["action"].ToString());
+        if (obj["action"] != null)
+            switch (obj["action"].ToString())
+            {
+                case "timeout": // 超时
+                    UICallManager.Instance.EventTimeOut();
+                    break;
+
+                case "invite": // 邀请
+
+                    if (obj["control"] != null)
+                    {
+                        string id = obj["control"]["id"].ToString();
+                        RTCRoomManager.Instance.controlId = id;
+
+                        if (RTCRoomManager.Instance.rtcState != RTCEnum.OFF) // 当前已经在房间内 直接发送当前房间号
+                        {
+                            JsonData data = new JsonData();
+                            data["action"] = "invite";
+                            data["rtcRoom"] = RTCRoomManager.Instance.mRTCRoomInfo.roomId.ToString();
+                            data["personnel"] = new JsonData();
+                            data["personnel"]["id"] = MQTTManager.Instance.id;
+                            data["personnel"]["name"] = MQTTManager.Instance._username;
+                            //data["personnel"]["resourcePoo1"] = MQTTManager.Instance.resourcePool;
+                            data["personnel"]["resourcePoolId"] = MQTTManager.Instance.resourcePoolId;
+                            data["personnel"]["room"] = MQTTManager.Instance.room;
+                            data["personnel"]["phone"] = MQTTManager.Instance.phone;
+                            // 用MQTT 向中考发送邀请
+                            MQTTManager.Instance.PushMsg(MQTTManager.Instance.front + "online/" + RTCRoomManager.Instance.controlId, data.ToJson());
+                        }
+                        else // 不在房间内,创建房间后 发送邀请
+                        {
+                            //string roomid = obj["rtcRoom"].ToString();                       
+                            //string resourcePool = obj["control"]["resourcePoo1"].ToString();
+                            RTCRoomManager.Instance.isInvite = true;
+                            UICallManager.Instance.EventInvite(obj["control"].ToString(), "");
+                            Debug.Log(phone);
+                        }
+                    }
+                    else
+                    {
+                        Debug.LogError(" 非控制台邀请 ");
+                    }
+
+                    break;
+
+                case "noExpert": // 无专家
+
+                    UICallManager.Instance.EventNoExpert();
+                    break;
+                case "chat": // 聊天消息
+
+                    // 拆解用户名  和 聊天内容  显示到聊天框里
+
+                    string username = obj["from"].ToString();
+                    string chatMsg = obj["chatMessage"].ToString();
+
+                    FileList.Instance.AddMsgItem(null, username, chatMsg);
+
+                    break;
+                case "share": // 接受文件
+
+                    Debug.Log(" DGJ ===> share  " + obj["chatMessage"].ToString());
+                    // 拆解用户名  和 文件名称  显示到聊天框里   下载文件
+                    FileConfig fileConfig = JsonConvert.DeserializeObject<FileConfig>(obj["chatMessage"].ToString());
+                    fileConfig.From = obj["from"].ToString();
+
+                    Debug.Log(" DGJ ===> FileConfig  " + JsonConvert.SerializeObject(fileConfig));
+
+
+
+
+                    FileList.Instance.AddItem(fileConfig);
+                    break;
+                case "remark": // 空间标注
+                    float Valuex = float.Parse(obj["chatMessage"]["x"].ToString());
+                    float Valuey = float.Parse(obj["chatMessage"]["y"].ToString());
+
+                    ArrowList.Instance.AddArrow(Valuex, Valuey);
+                    break;
+                case "clearRemark":
+                    ArrowList.Instance.DeleteAll();
+                    break;
+
+                case "leave":
+                    // 退出房间
+                    string roleId = obj["roleId"].ToString();
+                    if (roleId == "2")
+                    {
+
+                        //    RTCRoomManager.Instance.UserOffline(UserEnum.Expert);
+
+                    }
+
+                    if (roleId == "1")
+                    {
+                        //    RTCRoomManager.Instance.UserOffline(UserEnum.Conterl);
+                    }
+
+                    break;
+                default:
+                    break;
+            }
+
+
+        switch (MsgData.Topic)
+        {
+            case "yunyi/coordinate/close":
+                if (obj["action"] != null&& (obj["action"].ToString()== "stop"))
+                {
+                    // 停止同步位置信息
+
+                    SynPlayerTransform.Instance.isPushPos = false;
+
+                    MailUIContent.Instance.CloseSync.SetActive(false);
+                }
+
+                    break;
+            case "yunyi/navigation/diagram":
+                if (obj["image_data"] != null && !string.IsNullOrEmpty(obj["image_data"].ToString()))
+                {
+                    UILogManager.Instance.text2.text = msg;
+                    SynPlayerTransform.Instance.isPushPos = true;
+                    MailUIContent.Instance.CloseSync.SetActive(true);
+                    LangChaoMailManager.Instance.ReceiverMail(obj);
+
+                }
+                break;
+            default:
+                break;
+        }
+
+      
+    }
 }

+ 101 - 7
Assets/Scripts/Mail/LangChaoMailManager.cs

@@ -10,11 +10,29 @@ public class LangChaoMailManager : MonoSingleton<LangChaoMailManager>
     public Transform showImagePoint;
     public GameObject mail_imageItem;
 
+    public List<LangChaoMailItem> listMailItem;
+
+    public MailUIItem mailUIItem;
+    public Transform mailContent;
+
+    public Dictionary<LangChaoMailItem, GameObject> dicMailUIItems;
+
+    public Dictionary<LangChaoMailItem, GameObject> dicMialImageItems;
+
+    private void Start()
+    {
+        listMailItem = new List<LangChaoMailItem>();
+        dicMialImageItems = new Dictionary<LangChaoMailItem, GameObject>();
+        dicMailUIItems = new Dictionary<LangChaoMailItem, GameObject>();
+    }
     // 显示邮件
 
     // 加载邮件图片
 
-    // 接受邮件
+    /// <summary>
+    /// 接收邮件
+    /// </summary>
+    /// <param name="data"></param>
     public void ReceiverMail(JObject data)
     {
 
@@ -22,15 +40,91 @@ public class LangChaoMailManager : MonoSingleton<LangChaoMailManager>
 
         // 加载显示邮件
 
-        if (data["image_data"] != null)
+        LangChaoMailItem mailItem = new LangChaoMailItem();
+        mailItem.imageData = data["image_data"].ToString();
+        mailItem.timestamp = long.Parse(data["timestamp"].ToString());
+        mailItem.room = data["room"].ToString();
+        mailItem.rack = data["rack"].ToString();
+        mailItem.u_addr = data["u_addr"].ToString();
+
+     
+        if (string.IsNullOrEmpty( data["alarms"].ToString()) || string.IsNullOrEmpty(data["alarms"][0].ToString()))
         {
-            GameObject obj = GameObject.Instantiate(mail_imageItem, Mail_ImageList);
-            obj.transform.position = showImagePoint.position;
-            obj.transform.eulerAngles = showImagePoint.eulerAngles;
-            obj.SetActive(true);
-            obj.GetComponent<Mail_ImageItem>().SetImageData(data["image_data"].ToString());
+            mailItem.title = null;
+            mailItem.level = -1;
+        }
+        else
+        {
+            mailItem.title = data["alarms"][0]["title"].ToString();
+            mailItem.level = int.Parse(data["alarms"][0]["level"].ToString());
+        }
+
+        listMailItem.Add(mailItem);
+
+        GameObject objItem = GameObject.Instantiate(mailUIItem.gameObject, mailContent);
+        objItem.SetActive(true);
+        objItem.GetComponent<MailUIItem>().SettingData(mailItem);
+        dicMailUIItems.Add(mailItem, objItem);
+        MailUIContent.Instance.UpdatePage();
+
+        MailUIContent.Instance.ShowUnread(1);
+
+        MailUIContent.Instance.MailShow.SetActive(true);
+        MailUIContent.Instance.MailNull.SetActive(false);
+     
+    }
+
+    /// <summary>
+    ///  删除邮件
+    /// </summary>
+    /// <param name=""></param>
+    public void RemoveMail(LangChaoMailItem mailItem)
+    {
+        dicMailUIItems[mailItem].SetActive(false);
+        listMailItem.Remove(mailItem);
+
+        if (listMailItem.Count < 1)
+        {
+            MailUIContent.Instance.MailShow.SetActive(false);
+            MailUIContent.Instance.MailNull.SetActive(true);
+        }
+    }
 
 
+    public void ShowImage(LangChaoMailItem item, Texture ImgSprite)
+    {
+
+        if (dicMialImageItems.ContainsKey(item))
+        {
+
+            dicMialImageItems[item].transform.position = showImagePoint.position;
+            dicMialImageItems[item].transform.eulerAngles = showImagePoint.eulerAngles;
+            dicMialImageItems[item].gameObject.SetActive(true);
+           
         }
+        else
+        {
+            GameObject obj = GameObject.Instantiate(mail_imageItem);
+            obj.GetComponent<Mail_ImageItem>().SetImageData(ImgSprite);
+            obj.transform.position = showImagePoint.position;
+            obj.transform.eulerAngles = showImagePoint.eulerAngles;
+            obj.transform.SetParent(showImagePoint);
+            dicMialImageItems.Add(item, obj);
+        }
+       
     }
+
+}
+
+public class LangChaoMailItem
+{
+    public string imageData { get; set; }
+    public long timestamp { get; set; }
+    public string title { get; set; }
+    public int level { get; set; }
+    public string room { get; set; }
+    public string rack { get; set; }
+    public string u_addr { get; set; }
+
+    public bool isShow = false;
 }

+ 6 - 0
Assets/Scripts/Mail/Mail_ImageItem.cs

@@ -26,6 +26,12 @@ public class Mail_ImageItem : MonoBehaviour
         mainImage.texture = pic;
     }
 
+    public void SetImageData(Texture imgSprite)
+    {
+        Adaption(imgSprite);
+        mainImage.texture = imgSprite;
+    }
+
     public void Adaption(Texture tex)
     {
         float standard_width = 150f;

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

@@ -712,7 +712,7 @@ public class MachineRoomManager : MonoSingleton<MachineRoomManager>
             tagData.listTagData = data.listTagData;
             string jsonDate = JsonConvert.SerializeObject(tagData);
             Debug.Log(jsonDate);
-            HttpTool.Instance.Post(HttpActionLang.updateTag, jsonDate, UpdateTagCallBack);
+          //  HttpTool.Instance.Post(HttpActionLang.updateTag, jsonDate, UpdateTagCallBack);
 
             selectTOldPos = Vector3.zero;
             selectTOldRot = Vector3.zero;

+ 16 - 4
Assets/Scripts/Managers/SynPlayerTransform.cs

@@ -9,12 +9,15 @@ public class SynPlayerTransform : MonoSingleton<SynPlayerTransform>
     public Transform player;
 
     public bool isPushPos;
+
+    private Vector3 oldPos;
     void Start()
     {
         isPushPos = false;
         player = OpenXRCamera.Instance.head;
 
         StartCoroutine(PushPos(0.5f));
+        oldPos = Vector3.zero;
     }
 
     // Update is called once per frame
@@ -38,19 +41,28 @@ public class SynPlayerTransform : MonoSingleton<SynPlayerTransform>
         while (true)
         {
             yield return new  WaitForSeconds(times);
-            if (isPushPos)
+            if (isPushPos && Vector3.Distance(oldPos,player.transform.position)>0.5f)
             {
+                oldPos = player.transform.position;
+
                 JsonData obj = new JsonData();
 
-                obj["x"] = (float)(Mathf.Round(player.position.x * 100)) / 100;
+                obj["z"] = (float)(Mathf.Round(player.position.x * 100)) / 100;
                 obj["y"] = (float)(Mathf.Round(player.position.y * 100)) / 100;
-                obj["z"] = (float)(Mathf.Round(player.position.z * 100)) / 100;
+                obj["x"] = (float)(Mathf.Round(player.position.z * 100)) / 100;
+                obj["device"] = GetAndroidSNIEMI.GetDeviceUniqueIdMD5();
                 obj["time"] = CommonMethod.GetCurrentTimeUnixMilliseconds();
-                MQTTManager.Instance.PushMsg(MQTTManager.Instance.front + "younuo", obj.ToJson());
+                MQTTManager.Instance.PushMsg(MQTTManager.Instance.topiceSync, obj.ToJson());
             }
         }
     }
 
+    public void StoPushOnClick()
+    {
+        JsonData obj = new JsonData();
+        obj["action"] = "stop";
+        MQTTManager.Instance.PushMsg(MQTTManager.Instance.topiceClose, obj.ToJson());
+    }
 
     /// <summary>
     ///   返回当前朝向的机柜  ,  False 单排机柜 1 3  5...  

+ 8 - 0
Assets/UI/240220Mail.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: b39fc6bd270d2f9499df20e420c473dd
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/UI/240220Mail/bg-弹框.png


+ 147 - 0
Assets/UI/240220Mail/bg-弹框.png.meta

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

BIN
Assets/UI/240220Mail/btn-关闭.png


+ 147 - 0
Assets/UI/240220Mail/btn-关闭.png.meta

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

BIN
Assets/UI/240220Mail/btn-删除.png


+ 147 - 0
Assets/UI/240220Mail/btn-删除.png.meta

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

BIN
Assets/UI/240220Mail/btn-向右翻页.png


+ 147 - 0
Assets/UI/240220Mail/btn-向右翻页.png.meta

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

BIN
Assets/UI/240220Mail/btn-向左翻页.png


+ 147 - 0
Assets/UI/240220Mail/btn-向左翻页.png.meta

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

BIN
Assets/UI/240220Mail/关机-选中.png


+ 147 - 0
Assets/UI/240220Mail/关机-选中.png.meta

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

BIN
Assets/UI/240220Mail/关机.png


+ 147 - 0
Assets/UI/240220Mail/关机.png.meta

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

BIN
Assets/UI/240220Mail/箭头@2x.png


+ 147 - 0
Assets/UI/240220Mail/箭头@2x.png.meta

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

BIN
Assets/UI/240220Mail/路径-选中.png


+ 147 - 0
Assets/UI/240220Mail/路径-选中.png.meta

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

BIN
Assets/UI/240220Mail/路径.png


+ 147 - 0
Assets/UI/240220Mail/路径.png.meta

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

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