From 348552b0bce79bab5dd296c3ee9c971ebcf9656e Mon Sep 17 00:00:00 2001 From: lishuo Date: Mon, 20 Dec 2021 14:44:48 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=B6=88=E6=81=AF=E9=80=9A=E7=9F=A5?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=B8=8A=E7=BA=BF=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Scripts/Scenes/MainController.cs | 22 +++++++++++++++------- Assets/Scripts/Utils/Loom.cs | 2 +- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/Assets/Scripts/Scenes/MainController.cs b/Assets/Scripts/Scenes/MainController.cs index 554613a8..7e6cc3b0 100644 --- a/Assets/Scripts/Scenes/MainController.cs +++ b/Assets/Scripts/Scenes/MainController.cs @@ -175,11 +175,13 @@ public class MainController : BaseScene } void FinishMessageLeft() { +#if UNITY_STANDALONE_WIN msgIndex = 0; - foreach (var item in msgs) + foreach (var item in msgs) { item.DOFade(0, 0.3f); } +#endif } void FinishMessageRight() @@ -309,7 +311,8 @@ public class MainController : BaseScene MapUDPService.Send(0, App.CurrentUser.Id, new double[]{ 0d,0d}, competitionId: 0); //发送消息 - foreach (var item in MapUDPService.GetOnlineUserList()) + var list = MapUDPService.GetOnlineUserList(); + foreach (var item in list) { if (item.RouteId > 0) { @@ -322,7 +325,7 @@ public class MainController : BaseScene App.RouteNameDict.Add(item.RouteId, item.RouteName); } } - else + else { item.RouteName = App.RouteNameDict[item.RouteId]; } @@ -335,27 +338,32 @@ public class MainController : BaseScene { message = $"完成了{item.RouteName}的挑战"; } - if (!string.IsNullOrEmpty(message)) + if (!string.IsNullOrEmpty(message)) { EventQueueSystem.QueueEventOnce(new LinkedMessageEvent(item.RouteId, message, item.HeadImage, item.Name), $"{item.RouteId}{item.Name}"); } } + if (item.Point[0] == -1d) + { + var message = $"{item.Name}上线了"; + EventQueueSystem.QueueEventOnce(new LinkedMessageEvent(item.RouteId, message, item.HeadImage, item.Name), $"{item.Id}{item.LastActiveTime}{item.Point}"); + } //距离 if (item.EndDistance > 50) { - var message = $"在骑行过程中突破了{"50KM"}的挑战" ; + var message = $"在骑行过程中突破了{"50KM"}的挑战"; EventQueueSystem.QueueEventOnce(new LinkedMessageEvent(item.RouteId, message, item.HeadImage, item.Name), $"{item.RouteId}{item.Name}50KM"); } //速度 if (item.Speed > 10) { - var message = $"在骑行过程中速度达到了惊人的{item.Speed}KM/H"; + var message = $"在骑行过程中速度达到了惊人的{item.Speed}KM/H"; EventQueueSystem.QueueEventOnce(new LinkedMessageEvent(item.RouteId, message, item.HeadImage, item.Name), $"{item.RouteId}{item.Name}10KM/H"); } //功体比 if (item.WeightKg > 2) { - var message = $"在骑行过程中功体比达到了惊人的{item.WeightKg}w/kg"; + var message = $"在骑行过程中功体比达到了惊人的{item.WeightKg}w/kg"; EventQueueSystem.QueueEventOnce(new LinkedMessageEvent(item.RouteId, message, item.HeadImage, item.Name), $"{item.RouteId}{item.Name}2WeightKg"); } } diff --git a/Assets/Scripts/Utils/Loom.cs b/Assets/Scripts/Utils/Loom.cs index 75921602..ea44f950 100644 --- a/Assets/Scripts/Utils/Loom.cs +++ b/Assets/Scripts/Utils/Loom.cs @@ -46,8 +46,8 @@ public class Loom : MonoBehaviour DontDestroyOnLoad(g); _current = g.AddComponent(); MapUDPService.Init(); + MapUDPService.Send(0, App.CurrentUser.Id, new double[] { -1d, -1d }, competitionId: 0); } - } private List _actions = new List(); From 939084b07443e14433f904a4f53451f1edd54cc4 Mon Sep 17 00:00:00 2001 From: lishuo Date: Tue, 21 Dec 2021 10:10:05 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E5=A4=84=E7=90=86bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Scripts/Scenes/MainController.cs | 3 ++- Assets/Scripts/Scenes/Ride/Network/MapUDPService.cs | 9 +++++++-- Assets/Scripts/Scenes/Ride/Scripts/EventQueueManager.cs | 8 ++++---- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/Assets/Scripts/Scenes/MainController.cs b/Assets/Scripts/Scenes/MainController.cs index 7e6cc3b0..e464e9cc 100644 --- a/Assets/Scripts/Scenes/MainController.cs +++ b/Assets/Scripts/Scenes/MainController.cs @@ -311,7 +311,7 @@ public class MainController : BaseScene MapUDPService.Send(0, App.CurrentUser.Id, new double[]{ 0d,0d}, competitionId: 0); //发送消息 - var list = MapUDPService.GetOnlineUserList(); + var list = MapUDPService.GetAllOnlineUserList(); foreach (var item in list) { if (item.RouteId > 0) @@ -421,6 +421,7 @@ public class MainController : BaseScene } private void OnDestroy() { + EventQueueSystem.RemoveListener(LinkedMessageHandler); App.isHomeChanged -= OnIsHomeChanged; } } diff --git a/Assets/Scripts/Scenes/Ride/Network/MapUDPService.cs b/Assets/Scripts/Scenes/Ride/Network/MapUDPService.cs index 1ca9b1e1..4aefe67b 100644 --- a/Assets/Scripts/Scenes/Ride/Network/MapUDPService.cs +++ b/Assets/Scripts/Scenes/Ride/Network/MapUDPService.cs @@ -303,7 +303,7 @@ namespace Assets.Scenes.Ride.Scripts return result; } - public static List GetOnlineUserList() + public static List GetAllOnlineUserList() { var result = onlineUserHelper.OnlineUsers.Where(c => !c.IsSelf).ToList(); return result; @@ -325,6 +325,11 @@ namespace Assets.Scenes.Ride.Scripts } public static int GetNearRiderCount() + { + return onlineUserHelper.OnlineUsers.Where(c=> (c.Point[0] != 0 && c.Point[1] != 0)|| (c.Point[0] != -1 && c.Point[1] != -1)).Count(); + } + + public static int GetAllOnlineUserCount() { return onlineUserHelper.OnlineUsers.Count(); } @@ -484,7 +489,7 @@ namespace Assets.Scenes.Ride.Scripts var list = mes.ToList(); //去除自己的数据和命令包 //mes.RemoveAll(item => item.MemberId == App.CurrentUser.Id || item.Point[0] == 0); - list.RemoveAll(item => item.Point[0] == 0 && item.Point[1] == 0); + //list.RemoveAll(item => item.Point[0] == 0 && item.Point[1] == 0); //去除重复数据 list = list.Distinct(new OlineUserComparer()).ToList(); diff --git a/Assets/Scripts/Scenes/Ride/Scripts/EventQueueManager.cs b/Assets/Scripts/Scenes/Ride/Scripts/EventQueueManager.cs index 2b5a7044..6aa19ece 100644 --- a/Assets/Scripts/Scenes/Ride/Scripts/EventQueueManager.cs +++ b/Assets/Scripts/Scenes/Ride/Scripts/EventQueueManager.cs @@ -64,6 +64,7 @@ namespace Assets.Scenes.Ride.Scripts Instance.delegates[typeof(T)] = temp; } Instance.delegateLookup.Remove(del); + keyList.Clear(); } } @@ -120,16 +121,15 @@ namespace Assets.Scenes.Ride.Scripts return; Instance.eventQueue.Enqueue(e); } - static List keyList = new List(); + private static Dictionary keyList = new Dictionary(); public static void QueueEventOnce(GameEvent e,string key) { if (!Instance.delegates.ContainsKey(e.GetType())) return; - if (keyList.Contains(key)) + if (keyList.ContainsKey(key)) return; - keyList.Add(key); - Debug.Log(126); + keyList.Add(key,e); Instance.eventQueue.Enqueue(e); } float timer = 0.0f;