From 01df2992511776077ec13bd5dd5ec7cb9ffe211d Mon Sep 17 00:00:00 2001 From: CaiYanPeng Date: Wed, 2 Mar 2022 17:03:29 +0800 Subject: [PATCH] =?UTF-8?q?=E9=82=AE=E4=BB=B6=E5=8A=9F=E8=83=BD=E5=AE=8C?= =?UTF-8?q?=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Resources/Images/mail.meta | 8 + Assets/Resources/Images/mail/邮件2.png | Bin 0 -> 2655 bytes Assets/Resources/Images/mail/邮件2.png.meta | 128 + Assets/Resources/Images/mail/邮件4.png | Bin 0 -> 499 bytes Assets/Resources/Images/mail/邮件4.png.meta | 128 + Assets/Resources/UI/Prefab/Mail.meta | 8 + .../Resources/UI/Prefab/Mail/MailItem.prefab | 412 +++ .../UI/Prefab/Mail/MailItem.prefab.meta | 7 + Assets/Resources/UI/Prefab/MainNav.prefab | 280 +- .../UI/Prefab/Panel/BigMapPanel.prefab | 48 +- .../UI/Prefab/Panel/EarthPanel.prefab | 888 +++--- .../UI/Prefab/Panel/MailDetailPanel.prefab | 978 +++++++ .../Prefab/Panel/MailDetailPanel.prefab.meta | 7 + .../UI/Prefab/Panel/MailListPanel.prefab | 1040 +++++++ .../UI/Prefab/Panel/MailListPanel.prefab.meta | 7 + .../UI/Prefab/Panel/MapListPanel.prefab | 47 +- .../Prefab/Panel/NewRouteOverviewPanel.prefab | 53 +- .../UI/Prefab/Panel/NewsModal.prefab | 1 + .../UI/Prefab/Panel/RaceHomePanel.prefab | 50 +- .../UI/Prefab/Panel/RaceListPanel.prefab | 48 +- Assets/Resources/UI/language.json | 12 +- Assets/Scenes/Login.unity | 2495 +++++++++-------- Assets/Scenes/Test2.unity | 465 ++- Assets/Scripts/Apis/MailApi.cs | 32 + Assets/Scripts/Apis/MailApi.cs.meta | 11 + Assets/Scripts/Apis/MapApi.cs | 3 +- Assets/Scripts/Apis/Models/MailModel.cs | 20 + Assets/Scripts/Apis/Models/MailModel.cs.meta | 11 + Assets/Scripts/App.cs | 18 +- Assets/Scripts/ConfigHelper.cs | 10 + Assets/Scripts/Scenes/MainController.cs | 1 + Assets/Scripts/UI/Prefab/Mail.meta | 8 + .../UI/Prefab/Mail/MailDetailController.cs | 59 + .../Prefab/Mail/MailDetailController.cs.meta | 11 + .../UI/Prefab/Mail/MailItemController.cs | 37 + .../UI/Prefab/Mail/MailItemController.cs.meta | 11 + .../UI/Prefab/Mail/MailListController.cs | 56 + .../UI/Prefab/Mail/MailListController.cs.meta | 11 + Assets/Scripts/UI/Prefab/Mail/MailReceiver.cs | 64 + .../UI/Prefab/Mail/MailReceiver.cs.meta | 11 + Assets/Scripts/UI/Prefab/MainNav.cs | 12 +- Assets/Scripts/UIManager.cs | 32 + 42 files changed, 5747 insertions(+), 1781 deletions(-) create mode 100644 Assets/Resources/Images/mail.meta create mode 100644 Assets/Resources/Images/mail/邮件2.png create mode 100644 Assets/Resources/Images/mail/邮件2.png.meta create mode 100644 Assets/Resources/Images/mail/邮件4.png create mode 100644 Assets/Resources/Images/mail/邮件4.png.meta create mode 100644 Assets/Resources/UI/Prefab/Mail.meta create mode 100644 Assets/Resources/UI/Prefab/Mail/MailItem.prefab create mode 100644 Assets/Resources/UI/Prefab/Mail/MailItem.prefab.meta create mode 100644 Assets/Resources/UI/Prefab/Panel/MailDetailPanel.prefab create mode 100644 Assets/Resources/UI/Prefab/Panel/MailDetailPanel.prefab.meta create mode 100644 Assets/Resources/UI/Prefab/Panel/MailListPanel.prefab create mode 100644 Assets/Resources/UI/Prefab/Panel/MailListPanel.prefab.meta create mode 100644 Assets/Scripts/Apis/MailApi.cs create mode 100644 Assets/Scripts/Apis/MailApi.cs.meta create mode 100644 Assets/Scripts/Apis/Models/MailModel.cs create mode 100644 Assets/Scripts/Apis/Models/MailModel.cs.meta create mode 100644 Assets/Scripts/UI/Prefab/Mail.meta create mode 100644 Assets/Scripts/UI/Prefab/Mail/MailDetailController.cs create mode 100644 Assets/Scripts/UI/Prefab/Mail/MailDetailController.cs.meta create mode 100644 Assets/Scripts/UI/Prefab/Mail/MailItemController.cs create mode 100644 Assets/Scripts/UI/Prefab/Mail/MailItemController.cs.meta create mode 100644 Assets/Scripts/UI/Prefab/Mail/MailListController.cs create mode 100644 Assets/Scripts/UI/Prefab/Mail/MailListController.cs.meta create mode 100644 Assets/Scripts/UI/Prefab/Mail/MailReceiver.cs create mode 100644 Assets/Scripts/UI/Prefab/Mail/MailReceiver.cs.meta diff --git a/Assets/Resources/Images/mail.meta b/Assets/Resources/Images/mail.meta new file mode 100644 index 00000000..88f9a990 --- /dev/null +++ b/Assets/Resources/Images/mail.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9dc3c02036dcc184ea06acdea6af7adb +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Images/mail/邮件2.png b/Assets/Resources/Images/mail/邮件2.png new file mode 100644 index 0000000000000000000000000000000000000000..5efc0512d0d053473f4d1ecc86382028ed5f2dbd GIT binary patch literal 2655 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 N002ovPDHLkV1jE`7dQX_ literal 0 HcmV?d00001 diff --git a/Assets/Resources/Images/mail/邮件2.png.meta b/Assets/Resources/Images/mail/邮件2.png.meta new file mode 100644 index 00000000..544462e2 --- /dev/null +++ b/Assets/Resources/Images/mail/邮件2.png.meta @@ -0,0 +1,128 @@ +fileFormatVersion: 2 +guid: 495fe3f31f7098b4bb80a319f9dce410 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 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: iPhone + 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 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Images/mail/邮件4.png b/Assets/Resources/Images/mail/邮件4.png new file mode 100644 index 0000000000000000000000000000000000000000..b00fc5ee602b522abcbe2534ee6ba4c8d760719d GIT binary patch literal 499 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Eu!3HE}2mdz#QY`6?zK#qG8~eHcB(ehe7O4@Q zX}-P;T0k}j17mw80}GJF2*grA%)r33fC(<5uz(rPmH!^;3C!*jYfyA1)S3k@a8>nVRc-@9_3-Ngq<&hL8!)U_r#eMZ0`jO zr_Gu9(fFPCvi_x+yC03evU}??2oDP@h=q0 zzgw-aJ$!iMeSzDDx7My-a7pl;ap3Wps!jWfZB+K>8UAG|a&bAayh+t<-~5JcCrvpI zs2`iW{^VxX3ZU@%CE?N6SgaUkB~RX=@VzlRdzW2p(1m(d#)giFEVajZleqnS8h-Cz zu>> GetList(int pageIndex,int pageSize, int type) + { + var result = await GetAsync>>($"Message/GetList?pageIndex={pageIndex}&pageSize={pageSize}&type={type}"); + return result; + } + + public async Task> MarkRead(int id) + { + var result = await PostAsync>("Message/MarkRead",new { id}); + return result; + } + + public async Task> Delete(int id) + { + var result = await PostAsync>("Message/Delete", new { id }); + return result; + } + } +} diff --git a/Assets/Scripts/Apis/MailApi.cs.meta b/Assets/Scripts/Apis/MailApi.cs.meta new file mode 100644 index 00000000..77b2f386 --- /dev/null +++ b/Assets/Scripts/Apis/MailApi.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 593b04d43282490459537d561d16096d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Apis/MapApi.cs b/Assets/Scripts/Apis/MapApi.cs index 7aa68be7..d1c115d3 100644 --- a/Assets/Scripts/Apis/MapApi.cs +++ b/Assets/Scripts/Apis/MapApi.cs @@ -1,5 +1,4 @@ - -using Assets.Scenes.Ride.Scripts.Model; +using Assets.Scenes.Ride.Scripts.Model; using Assets.Scripts.Apis.Models; using System; using System.Collections.Generic; diff --git a/Assets/Scripts/Apis/Models/MailModel.cs b/Assets/Scripts/Apis/Models/MailModel.cs new file mode 100644 index 00000000..1faf77ee --- /dev/null +++ b/Assets/Scripts/Apis/Models/MailModel.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Assets.Scripts.Apis.Models +{ + public class MailModel + { + public int Id { get; set; } + public string Title { get; set; } + public string Desc { get; set; } + public bool IsRead { get; set; } + public DateTime CreateTime { get; set; } + public int Type { get; set; } + public int SendUserId { get; set; } + public string SendNickName { get; set; } + } +} diff --git a/Assets/Scripts/Apis/Models/MailModel.cs.meta b/Assets/Scripts/Apis/Models/MailModel.cs.meta new file mode 100644 index 00000000..561db5b1 --- /dev/null +++ b/Assets/Scripts/Apis/Models/MailModel.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3dd81357979eb03468cc496795d1e8fd +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/App.cs b/Assets/Scripts/App.cs index 388c4cdc..292079ec 100644 --- a/Assets/Scripts/App.cs +++ b/Assets/Scripts/App.cs @@ -20,7 +20,7 @@ public delegate void ChangeLanguageDelegate(); public static class App { - public static string Host = "http://192.168.0.101:5083/"; + public static string Host = "http://192.168.0.101:5087/"; public static string AppVersion = Application.version; @@ -191,6 +191,22 @@ public static class App } } + public static List CurrentUserMails { get; set; } + //public static event hasNotReadEvent; + public static event EventHandler HasNotReadChanged; + public static bool _hasNotRead; + public static bool hasNotRead + { + get => _hasNotRead; + set + { + _hasNotRead = value; + if (HasNotReadChanged != null) + { + HasNotReadChanged(value, new EventArgs()); + } + } + } public static bool CanOpenAd = false; public static Dictionary websiteDict = new Dictionary() diff --git a/Assets/Scripts/ConfigHelper.cs b/Assets/Scripts/ConfigHelper.cs index 805d90a8..4885bba6 100644 --- a/Assets/Scripts/ConfigHelper.cs +++ b/Assets/Scripts/ConfigHelper.cs @@ -78,5 +78,15 @@ namespace Assets.Scripts return _rowerApi; } } + + private static MailApi _mailApi; + internal static MailApi mailApi + { + get + { + if (_mailApi == null) _mailApi = new MailApi(); + return _mailApi; + } + } } } diff --git a/Assets/Scripts/Scenes/MainController.cs b/Assets/Scripts/Scenes/MainController.cs index fdd04487..3b2a8439 100644 --- a/Assets/Scripts/Scenes/MainController.cs +++ b/Assets/Scripts/Scenes/MainController.cs @@ -29,6 +29,7 @@ public class MainController : BaseScene Loom.Initialize(); msg = transform.Find("GameObject/Message").GetComponent(); InitialMessage(); + MailReceiver.Instance().GetMessage(); #if UNITY_ANDROID || UNITY_IOS transform.GetComponent().referenceResolution = new Vector2(844, 390); //transform.Find("Panel").GetComponent().sizeDelta = new Vector2(844, 390); diff --git a/Assets/Scripts/UI/Prefab/Mail.meta b/Assets/Scripts/UI/Prefab/Mail.meta new file mode 100644 index 00000000..28a14059 --- /dev/null +++ b/Assets/Scripts/UI/Prefab/Mail.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1fa036e3dd69a3a4686ffb7a3bfb530a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/UI/Prefab/Mail/MailDetailController.cs b/Assets/Scripts/UI/Prefab/Mail/MailDetailController.cs new file mode 100644 index 00000000..bf992bfb --- /dev/null +++ b/Assets/Scripts/UI/Prefab/Mail/MailDetailController.cs @@ -0,0 +1,59 @@ +using Assets.Scripts; +using Assets.Scripts.Apis.Models; +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +public class MailDetailController : PFUIPanel +{ + // Start is called before the first frame update + ScrollRect scroll; + protected override void Awake() + { + UIManager.AddEvent(transform.Find("Container/Exit").gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, async b => + { + CloseSelf(); + }); + UIManager.AddEvent(transform.Find("Container/BtnDelete").gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, b => + { + UIManager.ShowConfirm(App.GetLocalString("Delete"), App.GetLocalString("Are you sure you want to delete this email?"), async () => + { + if (mail != null) + { + await ConfigHelper.mailApi.Delete(mail.Id); + Utils.showToast(null, "Success", type: 1); + UIManager.CloseConfirm(); + CloseSelf(); + } + }); + }); + scroll = transform.Find("Container/Content/Scroll View").GetComponent(); + } + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } + MailModel mail; + public async void Initial(MailModel item) + { + this.mail = item; + await ConfigHelper.mailApi.MarkRead(item.Id); + transform.Find("Container/Title").GetComponent().text = item.Title; + scroll.content.Find("Text").GetComponent().text = $"{item.Desc}\n\n{item.SendNickName}"; + } + + private async void CloseSelf() + { + Close(); + await MailReceiver.Instance().GetMessage(); + UIManager.Instance.MailListController.Show(); + } +} diff --git a/Assets/Scripts/UI/Prefab/Mail/MailDetailController.cs.meta b/Assets/Scripts/UI/Prefab/Mail/MailDetailController.cs.meta new file mode 100644 index 00000000..563015b0 --- /dev/null +++ b/Assets/Scripts/UI/Prefab/Mail/MailDetailController.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 74fe80f225b0aff448f240dde817f640 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/UI/Prefab/Mail/MailItemController.cs b/Assets/Scripts/UI/Prefab/Mail/MailItemController.cs new file mode 100644 index 00000000..95c259e7 --- /dev/null +++ b/Assets/Scripts/UI/Prefab/Mail/MailItemController.cs @@ -0,0 +1,37 @@ +using Assets.Scripts; +using Assets.Scripts.Apis.Models; +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +public class MailItemController : MonoBehaviour +{ + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } + + public void Initial(MailModel item) + { + var color = item.IsRead ? Utils.HexToColorHtml("#5C5C6E") : Utils.HexToColorHtml("#ffffff"); + Text title = transform.Find("Content/Title").GetComponent(), time = transform.Find("Content/Time").GetComponent(); + title.text = item.Title; + time.text = item.CreateTime.ToString("yyyy-MM-dd HH:mm:ss"); + title.color = color; + time.color = color; + transform.Find("Content/MailImage").GetComponent().color = color; + UIManager.AddEvent(gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, b => + { + UIManager.ShowMailDetailPanel(item); + }); + } +} diff --git a/Assets/Scripts/UI/Prefab/Mail/MailItemController.cs.meta b/Assets/Scripts/UI/Prefab/Mail/MailItemController.cs.meta new file mode 100644 index 00000000..f2419d05 --- /dev/null +++ b/Assets/Scripts/UI/Prefab/Mail/MailItemController.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 896523cde19693d4ca337b93a7880c8a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/UI/Prefab/Mail/MailListController.cs b/Assets/Scripts/UI/Prefab/Mail/MailListController.cs new file mode 100644 index 00000000..72db510a --- /dev/null +++ b/Assets/Scripts/UI/Prefab/Mail/MailListController.cs @@ -0,0 +1,56 @@ +using Assets.Scripts.Apis.Models; +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +public class MailListController : PFUIPanel +{ + // Start is called before the first frame update + ScrollRect scroll; + GameObject mail; + protected override void Awake() + { + UIManager.AddEvent(transform.Find("Container/Exit").gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, b => + { + Close(); + }); + scroll = transform.Find("Container/Content/Right/Scroll View").GetComponent(); +#if UNITY_STANDALONE_WIN + mail = Resources.Load("UI/Prefab/Mail/MailItem"); +#endif + } + public override void Show() + { + base.Show(); + DisplayMails(App.CurrentUserMails); + } + + private void DisplayMails(List list) + { + scroll.content.DetachChildren(); + if (mail != null) + { + foreach (var item in list) + { + var obj = Instantiate(mail); + obj.GetComponent().Initial(item); + //obj.SendMessage("Initial", ); + obj.transform.SetParent(scroll.content.transform); + obj.transform.localScale = new Vector3(1, 1, 1); + } + } + } + + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } +} diff --git a/Assets/Scripts/UI/Prefab/Mail/MailListController.cs.meta b/Assets/Scripts/UI/Prefab/Mail/MailListController.cs.meta new file mode 100644 index 00000000..7943181d --- /dev/null +++ b/Assets/Scripts/UI/Prefab/Mail/MailListController.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: cdfbce372733cb8438be420f311cb56e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/UI/Prefab/Mail/MailReceiver.cs b/Assets/Scripts/UI/Prefab/Mail/MailReceiver.cs new file mode 100644 index 00000000..aaa36fbb --- /dev/null +++ b/Assets/Scripts/UI/Prefab/Mail/MailReceiver.cs @@ -0,0 +1,64 @@ +using Assets.Scripts; +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using UnityEngine; +using UnityEngine.UI; + +public class MailReceiver : MonoBehaviour +{ + // Start is called before the first frame update + private static MailReceiver _instance = null; + + public static bool Exists() + { + return _instance != null; + } + + public static MailReceiver Instance() + { + if (!Exists()) + { + throw new Exception("UnityMainThreadDispatcher could not find the UnityMainThreadDispatcher object. Please ensure you have added the MainThreadExecutor Prefab to your scene."); + } + return _instance; + } + + void Awake() + { + if (_instance == null) + { + _instance = this; + } + DontDestroyOnLoad(gameObject); + } + + void Start() + { + + } + + float timer = 10f; + // Update is called once per frame + void Update() + { + timer -= Time.deltaTime; + if (timer < 0) + { + GetMessage(); + timer += 10; + } + } + + public async Task GetMessage() + { + var res = await ConfigHelper.mailApi.GetList(0, 100, 0); + if (res.result) + { + App.CurrentUserMails = res.data; + App.hasNotRead = res.data.Count(x => !x.IsRead) > 0; + } + } +} diff --git a/Assets/Scripts/UI/Prefab/Mail/MailReceiver.cs.meta b/Assets/Scripts/UI/Prefab/Mail/MailReceiver.cs.meta new file mode 100644 index 00000000..f70d4469 --- /dev/null +++ b/Assets/Scripts/UI/Prefab/Mail/MailReceiver.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 227da2d8b06aad34ca648aa8c2ab5f05 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/UI/Prefab/MainNav.cs b/Assets/Scripts/UI/Prefab/MainNav.cs index fb0040e7..c6629684 100644 --- a/Assets/Scripts/UI/Prefab/MainNav.cs +++ b/Assets/Scripts/UI/Prefab/MainNav.cs @@ -3,6 +3,7 @@ using DG.Tweening; using System; using System.Collections; using System.Collections.Generic; +using System.Linq; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; @@ -81,7 +82,17 @@ public class MainNav : MonoBehaviour { UIManager.ShowFeedBackModal(); }); + UIManager.AddEvent(transform.Find("Mail").gameObject, EventTriggerType.PointerClick, x => + { + UIManager.ShowMailListPanel(); + }); + App.HasNotReadChanged -= ShowMailDot; + App.HasNotReadChanged += ShowMailDot; + } + private void ShowMailDot(object sender, EventArgs e) + { + transform.Find("Mail/Dot").gameObject.SetActive((bool)sender); } public void ShowRowerTab() @@ -126,7 +137,6 @@ public class MainNav : MonoBehaviour } #endif } - public void ShowExit() { if (exit) diff --git a/Assets/Scripts/UIManager.cs b/Assets/Scripts/UIManager.cs index ae88df08..22a71572 100644 --- a/Assets/Scripts/UIManager.cs +++ b/Assets/Scripts/UIManager.cs @@ -425,7 +425,39 @@ public class UIManager : MonoBehaviour { UIManager.Show(UIManager.Instance.AddressController, null, true); } + #region 邮件相关 + MailListController mMailListController; + public MailListController MailListController + { + get + { + return this.GetPanelInstance("MailListPanel", ref this.mMailListController); + } + } + public static void ShowMailListPanel() + { + UIManager.Show(UIManager.Instance.MailListController, null, true); + } + MailDetailController mMailDetailController; + public MailDetailController MailDetailController + { + get + { + return this.GetPanelInstance("MailDetailPanel", ref this.mMailDetailController); + } + } + public static void ShowMailDetailPanel(MailModel item) + { + UIManager.Instance.MailDetailController.Initial(item); + UIManager.Instance.Invoke("ShowMailDetailPanel", 0.1f); + + } + public void ShowMailDetailPanel() + { + UIManager.Show(UIManager.Instance.MailDetailController, null, true); + } + #endregion #region 比赛点击弹窗 private RaceModalScript mRaceModalScript; public RaceModalScript RaceDetailModal