From 9ab8165630d41bffe827430f4c6be1206c0811a4 Mon Sep 17 00:00:00 2001 From: lishuo Date: Thu, 29 Jul 2021 20:01:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B6=88=E6=81=AF=E9=80=9A=E7=9F=A5bug&?= =?UTF-8?q?=E8=B5=9B=E4=BA=8B=E7=95=8C=E9=9D=A2=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Match/CompetitionResultPanel.prefab | 124 +++++++++++++----- .../UI/Prefab/Match/CompetitonPanel.prefab | 14 +- .../UI/Prefab/Match/FinalRankingItem.prefab | 6 +- .../UI/Prefab/Match/TopRankingItem.prefab | 8 +- .../UI/Prefab/Panel/RaceAlertPanel.prefab | 2 +- Assets/Scripts/Apis/Models/MapCompetition.cs | 1 + Assets/Scripts/App.cs | 2 + Assets/Scripts/Scenes/MainController.cs | 1 + .../CompetitionLoadingController.cs | 20 +-- .../Ride/Competiton/CountDownFactory.cs | 2 +- .../Ride/Competiton/FinalRankingItemScript.cs | 4 +- .../Ride/Competiton/TopRankingFactory.cs | 70 +++++----- .../Model/CyclingModels/CompetitionModel.cs | 16 ++- .../Scenes/Ride/Scripts/CyclingController.cs | 1 + Assets/Scripts/UIManager.cs | 4 +- 15 files changed, 182 insertions(+), 93 deletions(-) diff --git a/Assets/Resources/UI/Prefab/Match/CompetitionResultPanel.prefab b/Assets/Resources/UI/Prefab/Match/CompetitionResultPanel.prefab index 02e809b1..ba1fc38d 100644 --- a/Assets/Resources/UI/Prefab/Match/CompetitionResultPanel.prefab +++ b/Assets/Resources/UI/Prefab/Match/CompetitionResultPanel.prefab @@ -90,7 +90,6 @@ GameObject: - component: {fileID: 807686475385249120} - component: {fileID: 319842981081321694} - component: {fileID: 3419393518372327006} - - component: {fileID: 6294539270716646236} m_Layer: 5 m_Name: Close m_TagString: Untagged @@ -132,7 +131,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 0.20784314, g: 0.20784314, b: 0.2627451, a: 0.8} + m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 m_Maskable: 1 m_OnCullStateChanged: @@ -168,9 +167,9 @@ MonoBehaviour: m_SelectOnRight: {fileID: 0} m_Transition: 1 m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_NormalColor: {r: 0.23921569, g: 0.24313726, b: 0.3019608, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 1, g: 1, b: 1, a: 1} m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} m_ColorMultiplier: 1 @@ -199,20 +198,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 319842981081321692} m_CullTransparentMesh: 0 ---- !u!114 &6294539270716646236 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 319842981081321692} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: cb33d8ce76885d8438909e96ff897bf3, type: 3} - m_Name: - m_EditorClassIdentifier: - mType: 0 - Tooltips: Close --- !u!1 &319842981847980292 GameObject: m_ObjectHideFlags: 0 @@ -311,7 +296,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &2907692473210516730 RectTransform: m_ObjectHideFlags: 0 @@ -330,7 +315,7 @@ RectTransform: m_AnchorMin: {x: 0.5, y: 1} m_AnchorMax: {x: 0.5, y: 1} m_AnchoredPosition: {x: 0, y: -50} - m_SizeDelta: {x: 0, y: 34} + m_SizeDelta: {x: 40, y: 34} m_Pivot: {x: 0.5, y: 1} --- !u!222 &699406188596593605 CanvasRenderer: @@ -1187,6 +1172,84 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!1 &1704703321856270639 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1268885097902296256} + - component: {fileID: 4947407605451430434} + - component: {fileID: 9171626373557116018} + m_Layer: 5 + m_Name: WatchTitle (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1268885097902296256 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1704703321856270639} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 6716961565728369172} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 143.5, y: -82.9} + m_SizeDelta: {x: 287, y: 48.866318} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4947407605451430434 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1704703321856270639} + m_CullTransparentMesh: 0 +--- !u!114 &9171626373557116018 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1704703321856270639} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 9428f2aab98e9c34d923a9174035a197, type: 3} + m_FontSize: 40 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 4 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: RANKING --- !u!1 &1841578915492704467 GameObject: m_ObjectHideFlags: 0 @@ -2032,14 +2095,15 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] + m_Children: + - {fileID: 1268885097902296256} m_Father: {fileID: 8381767031396044147} m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 267.5, y: -141} - m_SizeDelta: {x: 287, y: 110} + m_AnchoredPosition: {x: 267.5, y: -122.9} + m_SizeDelta: {x: 287, y: 73.772644} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &8255885746112685489 CanvasRenderer: @@ -2078,10 +2142,10 @@ MonoBehaviour: m_Alignment: 4 m_AlignByGeometry: 0 m_RichText: 1 - m_HorizontalOverflow: 0 + m_HorizontalOverflow: 1 m_VerticalOverflow: 0 m_LineSpacing: 1 - m_Text: COMPETITION RANKING + m_Text: COMPETITION --- !u!1 &3705417091195862845 GameObject: m_ObjectHideFlags: 0 @@ -2385,9 +2449,9 @@ RectTransform: m_Father: {fileID: 2907692473210516730} 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: 20, y: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 20, y: -9} m_SizeDelta: {x: 0, y: 16} m_Pivot: {x: 0.5, y: 1} --- !u!222 &8186740343531769165 @@ -3985,7 +4049,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 0 + m_IsActive: 1 --- !u!224 &9162128331779673185 RectTransform: m_ObjectHideFlags: 0 diff --git a/Assets/Resources/UI/Prefab/Match/CompetitonPanel.prefab b/Assets/Resources/UI/Prefab/Match/CompetitonPanel.prefab index 8ec9688d..046a66cc 100644 --- a/Assets/Resources/UI/Prefab/Match/CompetitonPanel.prefab +++ b/Assets/Resources/UI/Prefab/Match/CompetitonPanel.prefab @@ -1504,7 +1504,7 @@ MonoBehaviour: m_HorizontalOverflow: 0 m_VerticalOverflow: 0 m_LineSpacing: 1 - m_Text: Apply + m_Text: Join --- !u!1 &4080099147826733645 GameObject: m_ObjectHideFlags: 0 @@ -2472,7 +2472,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 744, y: -482} + m_AnchoredPosition: {x: 744, y: -448} m_SizeDelta: {x: 685, y: 0} m_Pivot: {x: 1, y: 1} --- !u!222 &6558498177234723984 @@ -3232,7 +3232,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 130.3, y: -455} + m_AnchoredPosition: {x: 130.3, y: -421} m_SizeDelta: {x: 144.53284, y: 34} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &6558498177724301629 @@ -5808,7 +5808,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &6558498179264530620 RectTransform: m_ObjectHideFlags: 0 @@ -5964,7 +5964,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &5095066172370528861 RectTransform: m_ObjectHideFlags: 0 @@ -6587,7 +6587,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 290, y: -410} + m_AnchoredPosition: {x: 290, y: -376} m_SizeDelta: {x: 460, y: 38} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &5714171831027139933 @@ -6798,7 +6798,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &455999053341543882 RectTransform: m_ObjectHideFlags: 0 diff --git a/Assets/Resources/UI/Prefab/Match/FinalRankingItem.prefab b/Assets/Resources/UI/Prefab/Match/FinalRankingItem.prefab index 2b82afe0..31a7c178 100644 --- a/Assets/Resources/UI/Prefab/Match/FinalRankingItem.prefab +++ b/Assets/Resources/UI/Prefab/Match/FinalRankingItem.prefab @@ -322,7 +322,7 @@ MonoBehaviour: m_Alignment: 3 m_AlignByGeometry: 0 m_RichText: 1 - m_HorizontalOverflow: 0 + m_HorizontalOverflow: 1 m_VerticalOverflow: 0 m_LineSpacing: 1 m_Text: 999bpm @@ -845,7 +845,7 @@ MonoBehaviour: m_Alignment: 3 m_AlignByGeometry: 0 m_RichText: 1 - m_HorizontalOverflow: 0 + m_HorizontalOverflow: 1 m_VerticalOverflow: 0 m_LineSpacing: 1 m_Text: 455w @@ -936,7 +936,7 @@ MonoBehaviour: m_Alignment: 3 m_AlignByGeometry: 0 m_RichText: 1 - m_HorizontalOverflow: 0 + m_HorizontalOverflow: 1 m_VerticalOverflow: 0 m_LineSpacing: 1 m_Text: 97.1W/KG diff --git a/Assets/Resources/UI/Prefab/Match/TopRankingItem.prefab b/Assets/Resources/UI/Prefab/Match/TopRankingItem.prefab index 22bae354..049f6586 100644 --- a/Assets/Resources/UI/Prefab/Match/TopRankingItem.prefab +++ b/Assets/Resources/UI/Prefab/Match/TopRankingItem.prefab @@ -119,8 +119,8 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0.5} m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 252, y: 0} - m_SizeDelta: {x: 64, y: 22} + m_AnchoredPosition: {x: 244.41, y: 0} + m_SizeDelta: {x: 79.16922, y: 22} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &5946431579487976801 CanvasRenderer: @@ -360,8 +360,8 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0.5} m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 141.65, y: 0} - m_SizeDelta: {x: 143.2981, y: 22} + m_AnchoredPosition: {x: 137.41, y: 0} + m_SizeDelta: {x: 134.8265, y: 22} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &5549514346347886655 CanvasRenderer: diff --git a/Assets/Resources/UI/Prefab/Panel/RaceAlertPanel.prefab b/Assets/Resources/UI/Prefab/Panel/RaceAlertPanel.prefab index 226010a2..931bb089 100644 --- a/Assets/Resources/UI/Prefab/Panel/RaceAlertPanel.prefab +++ b/Assets/Resources/UI/Prefab/Panel/RaceAlertPanel.prefab @@ -279,7 +279,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &5842261755140000527 RectTransform: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/Apis/Models/MapCompetition.cs b/Assets/Scripts/Apis/Models/MapCompetition.cs index 088aff2f..e24d5b72 100644 --- a/Assets/Scripts/Apis/Models/MapCompetition.cs +++ b/Assets/Scripts/Apis/Models/MapCompetition.cs @@ -38,6 +38,7 @@ namespace Assets.Scripts.Apis.Models public bool applyed { get; set; } public bool CanJoin { get; set; } public bool CanStart { get; set; } + public bool CanEnter { get; set; } public bool CanExit { get; set; } public bool CanCancelJoin { get; set; } public bool CanWatch { get; set; } diff --git a/Assets/Scripts/App.cs b/Assets/Scripts/App.cs index 42894b58..ae5e3090 100644 --- a/Assets/Scripts/App.cs +++ b/Assets/Scripts/App.cs @@ -67,6 +67,8 @@ public static class App } } + public static string CurrentScene { get; set; }//当前场景 + static App() { //#if !UNITY_EDITOR diff --git a/Assets/Scripts/Scenes/MainController.cs b/Assets/Scripts/Scenes/MainController.cs index 08e01c57..4c3b2691 100644 --- a/Assets/Scripts/Scenes/MainController.cs +++ b/Assets/Scripts/Scenes/MainController.cs @@ -80,6 +80,7 @@ public class MainController : BaseScene t -= Time.deltaTime; while (t <= 0) { + App.CurrentScene = "Main"; UIManager.SendCompetitionStartMessage("Main"); t = 1; } diff --git a/Assets/Scripts/Scenes/Ride/Competiton/CompetitionLoadingController.cs b/Assets/Scripts/Scenes/Ride/Competiton/CompetitionLoadingController.cs index 449d1201..1beefc4e 100644 --- a/Assets/Scripts/Scenes/Ride/Competiton/CompetitionLoadingController.cs +++ b/Assets/Scripts/Scenes/Ride/Competiton/CompetitionLoadingController.cs @@ -15,6 +15,7 @@ namespace Assets.Scenes.Ride.Scripts private bool _canJoin = false; private bool _canStart = false; private bool _canWatch = false; + private bool _canEnter = false; private RawImage CompetitionDesc { get; set; } private RawImage SponsorLogoImage { get; set; } private Text StartTime { get; set; } @@ -65,7 +66,9 @@ namespace Assets.Scenes.Ride.Scripts GetReady.gameObject.SetActive(false); } var applyCount = (int)(competition.StartApplyTime.ToLocalTime() - UIManager.Now.GetDateTime()).TotalSeconds; - if (count == 0 || applyCount == 0) + var endApplyCount = (int)(competition.EndApplyTime.ToLocalTime() - UIManager.Now.GetDateTime()).TotalSeconds; + + if (count == 0 || applyCount == 0 || endApplyCount == 0) { UpdateCompetition(); } @@ -74,9 +77,9 @@ namespace Assets.Scenes.Ride.Scripts //2.观看按钮 Watch.SetActive(_canWatch); //3.开始按钮 - rideNow.gameObject.SetActive(_canStart); + rideNow.gameObject.SetActive(_canEnter); //4.详情按钮 - Detail.SetActive(!_canStart); + Detail.SetActive(!_canEnter); //5.取消报名按钮 (比赛开始前可以取消报名) CancelJoin.SetActive(_canCancelApply); @@ -118,8 +121,8 @@ namespace Assets.Scenes.Ride.Scripts CompetitionTitle = panel.transform.Find("CompetitionName").GetComponent(); CompetitionDesc = panel.transform.Find("CompetitionDesc").GetComponent(); StartTime = panel.transform.Find("Time").GetComponent(); - EndTime = panel.transform.Find("EndTime").GetComponent(); - Contestant = panel.transform.Find("Contestant").GetComponent(); + //EndTime = panel.transform.Find("EndTime").GetComponent(); + Contestant = panel.transform.Find("ContestantTile").GetComponent(); Watch = panel.transform.Find("Watch").gameObject; CancelJoin = panel.transform.Find("CancelJoin").gameObject; Detail = panel.transform.Find("Detail").gameObject; @@ -152,10 +155,11 @@ namespace Assets.Scenes.Ride.Scripts competition = cyclingController.competition; //赛事状态按钮控制 _canJoin = competition.CanJoin; - _canStart = competition.CanStart; + _canStart = competition.CanExit; _canCancelApply = competition.CanCancelJoin;//可以取消预约 _raceStart = competition.Status == 3; _canWatch = competition.CanWatch; + _canEnter = competition.CanEnter; #region 赛事基本信息 //赛事名称 CompetitionTitle.text = competition.Title; @@ -168,9 +172,9 @@ namespace Assets.Scenes.Ride.Scripts //平均破度 slope.text = Math.Round(route.AverageGrade, 2).ToString() + "%"; //比赛开始时间 - StartTime.text = competition.StartTime.ToLocalTime().ToString(); + StartTime.text = competition.StartTime.ToLocalTime().ToString()+"-"+ competition.EndApplyTime.ToLocalTime().ToString(); //比赛结束时间 - EndTime.text = competition.EndTime.ToLocalTime().ToString(); + // EndTime.text = competition.EndTime.ToLocalTime().ToString(); //比赛状态 CompetitionStatus.text = competition.StatusVlaue.ToString(); //参赛选手 diff --git a/Assets/Scripts/Scenes/Ride/Competiton/CountDownFactory.cs b/Assets/Scripts/Scenes/Ride/Competiton/CountDownFactory.cs index ab62db27..88a21d89 100644 --- a/Assets/Scripts/Scenes/Ride/Competiton/CountDownFactory.cs +++ b/Assets/Scripts/Scenes/Ride/Competiton/CountDownFactory.cs @@ -49,7 +49,7 @@ namespace Assets.Scenes.Ride.Scripts if (s.Item2 && !isAutoSave) { //显示倒计时面板信息 - ShowCountDown(s.Item1, "get the winner,end tance remains"); + ShowCountDown(s.Item1, "Get The First Place. Time Limit:"); } else if (s.Item1 > 0) { diff --git a/Assets/Scripts/Scenes/Ride/Competiton/FinalRankingItemScript.cs b/Assets/Scripts/Scenes/Ride/Competiton/FinalRankingItemScript.cs index 2707f32a..d5788598 100644 --- a/Assets/Scripts/Scenes/Ride/Competiton/FinalRankingItemScript.cs +++ b/Assets/Scripts/Scenes/Ride/Competiton/FinalRankingItemScript.cs @@ -167,7 +167,7 @@ namespace Assets.Scenes.Ride.Scripts public void setUserId(int userId,string WxHeadImg) { _userId = userId; - var isself = userId == cyclingController.currentPlayer.UserId; + var isself = userId == cyclingController.currentPlayer.UserId && !cyclingController.isWatch; //头像根据是否是自己显示 if (isself) { @@ -176,7 +176,7 @@ namespace Assets.Scenes.Ride.Scripts Head.gameObject.SetActive(isself); //边框样式 var color = isself ? WHITE : TRANSPARENT; - outline.effectColor = color; + //outline.effectColor = color; } } } diff --git a/Assets/Scripts/Scenes/Ride/Competiton/TopRankingFactory.cs b/Assets/Scripts/Scenes/Ride/Competiton/TopRankingFactory.cs index b95f6cb6..073808a4 100644 --- a/Assets/Scripts/Scenes/Ride/Competiton/TopRankingFactory.cs +++ b/Assets/Scripts/Scenes/Ride/Competiton/TopRankingFactory.cs @@ -1,5 +1,6 @@ using Assets.Scenes.Ride.Scripts.Model; using Assets.Scenes.Ride.Scripts.Model.CyclingModels; +using Assets.Scripts; using System.Collections.Generic; using System.Linq; using UnityEngine; @@ -34,18 +35,18 @@ namespace Assets.Scenes.Ride.Scripts rankingList = ss?.TopList; if (rankingList == null) return; - //删除 - var currentTopRankingList = FindObjectsOfType(); - foreach (var o in currentTopRankingList) - { - var e = rankingList.Where(c => c.UserId == o.UserId).FirstOrDefault(); - if (e == null) - { - o.transform.gameObject.SetActive(false);//TODO:这里暂时不删除,删除对应的图片和脚本依赖这个对象;脚本提供一个dispose - bufferSize--; - } - } - + ////删除 + //var currentTopRankingList = FindObjectsOfType(); + //foreach (var o in currentTopRankingList) + //{ + // var e = rankingList.Where(c => c.UserId == o.UserId).FirstOrDefault(); + // if (e == null) + // { + // o.transform.gameObject.SetActive(false);//TODO:这里暂时不删除,删除对应的图片和脚本依赖这个对象;脚本提供一个dispose + // bufferSize--; + // } + //} + Utils.DestroyChildren(parent); for (int i = 0; i < rankingList.Count(); i++) { Create(rankingList[i]); @@ -53,27 +54,30 @@ namespace Assets.Scenes.Ride.Scripts } private void Create(CompetitionTopModel item) { - var rankingList = FindObjectsOfType(); - var competitionRankingItem = rankingList.Where(c => c.rank == item.Index).FirstOrDefault(); - //如果当前有这个用户则更新没有则创建并setslibingindex - if (competitionRankingItem == null) - { - //创建 - if (bufferSize < pageSize) - { - //情况一:还有足够的buffer,直接创建 - GameObject prefabItem = nearByItem; - GameObject newObj = (GameObject)Instantiate(prefabItem, parent); - competitionRankingItem = newObj.GetComponent(); - bufferSize++; - } - else - { - //情况二:没有足够的buffer,找到要被淘汰的buffer()最后一名 - competitionRankingItem = rankingList.OrderByDescending(c => c.rank).FirstOrDefault(); - } - - } + //var rankingList = FindObjectsOfType(); + //var competitionRankingItem = rankingList.Where(c => c.rank == item.Index).FirstOrDefault(); + ////如果当前有这个用户则更新没有则创建并setslibingindex + //if (competitionRankingItem == null) + //{ + // //创建 + // if (bufferSize < pageSize) + // { + // //情况一:还有足够的buffer,直接创建 + // GameObject prefabItem = nearByItem; + // GameObject newObj = (GameObject)Instantiate(prefabItem, parent); + // competitionRankingItem = newObj.GetComponent(); + // bufferSize++; + // } + // else + // { + // //情况二:没有足够的buffer,找到要被淘汰的buffer()最后一名 + // competitionRankingItem = rankingList.OrderByDescending(c => c.rank).FirstOrDefault(); + // } + + //} + GameObject newObj = (GameObject)Instantiate(nearByItem, parent); + var competitionRankingItem = newObj.GetComponent(); + competitionRankingItem.setHead(item.Head); competitionRankingItem.setTimer(item.TripTime); competitionRankingItem.SetRank(item.Index); diff --git a/Assets/Scripts/Scenes/Ride/Model/CyclingModels/CompetitionModel.cs b/Assets/Scripts/Scenes/Ride/Model/CyclingModels/CompetitionModel.cs index 8a78aa48..689509aa 100644 --- a/Assets/Scripts/Scenes/Ride/Model/CyclingModels/CompetitionModel.cs +++ b/Assets/Scripts/Scenes/Ride/Model/CyclingModels/CompetitionModel.cs @@ -164,7 +164,7 @@ namespace Assets.Scenes.Ride.Scripts.Model.CyclingModels #region 骑行结束,比赛结果展示数据 var results = new List(); - if (recorderData.IsCompleted || recorderData.Saved || mapCompetition.HasRecord || CanQuit()) + if (recorderData.IsCompleted || recorderData.Saved || mapCompetition.HasRecord || CanShowTopList()) { var users1 = userList.Where(d => d.IsCompleted || d.Saved); if ((users1.Any() && users1.Any(d => mapWorkoutRecordRankings.All(u => u.UserId != d.Id))) @@ -212,7 +212,7 @@ namespace Assets.Scenes.Ride.Scripts.Model.CyclingModels List CompetitionTopList = new List(); - var resultList =results.Take(6); + var resultList = results.Take(6); var count = 6 - resultList.Count(); //先取比赛结果 foreach (var item in resultList) @@ -321,6 +321,18 @@ namespace Assets.Scenes.Ride.Scripts.Model.CyclingModels return end2 <= 0; } + public bool CanShowTopList() + { + var end1 = (int)Math.Floor((mapCompetition.EndTime.ToLocalTime() - Now).TotalSeconds); + if (!FirstEndTime.HasValue) + { + return end1 <= 0; + } + + var end2 = (int)Math.Floor((FirstEndTime.Value.ToLocalTime() - Now).TotalSeconds); + return end2 <= 0; + } + public bool CanStart() { if (mapCompetition == null) diff --git a/Assets/Scripts/Scenes/Ride/Scripts/CyclingController.cs b/Assets/Scripts/Scenes/Ride/Scripts/CyclingController.cs index 4c6aa587..e3bd8904 100644 --- a/Assets/Scripts/Scenes/Ride/Scripts/CyclingController.cs +++ b/Assets/Scripts/Scenes/Ride/Scripts/CyclingController.cs @@ -149,6 +149,7 @@ public class CyclingController : DeviceServiceMonoBase if (timer <= 0)//定时器 一秒执行一次 { TcpHandler(); + App.CurrentScene = "Ride"; if (competitionId == 0) { UIManager.SendCompetitionStartMessage("Ride"); diff --git a/Assets/Scripts/UIManager.cs b/Assets/Scripts/UIManager.cs index f8a4f5d9..859064a9 100644 --- a/Assets/Scripts/UIManager.cs +++ b/Assets/Scripts/UIManager.cs @@ -239,7 +239,7 @@ public class UIManager : MonoBehaviour //比赛即将开始消息提醒 private void CompetitonStartHandler(CompetitonStartMessageEvent e) { - if (e.SceneName.Equals("Ride")) + if (App.CurrentScene.Equals("Ride")) { ShowRaceAlertPanel(); if (mRaceAlertPanel != null) @@ -247,7 +247,7 @@ public class UIManager : MonoBehaviour mRaceAlertPanel.Set(e.StartTime.ToLocalTime(), Now.GetDateTime(), e.title, e.SceneName, e.competitionId, e.routeId); } } - else + else if (App.CurrentScene.Equals("Main")) { ShowRaceAlertBanelPanel(); if (mRaceAlertBandPanel != null)