diff --git a/Assets/Resources/UI/Prefab/Match/CompetitionRankingItem.prefab b/Assets/Resources/UI/Prefab/Match/CompetitionRankingItem.prefab index bb58aee8..eb1306e5 100644 --- a/Assets/Resources/UI/Prefab/Match/CompetitionRankingItem.prefab +++ b/Assets/Resources/UI/Prefab/Match/CompetitionRankingItem.prefab @@ -669,7 +669,7 @@ RectTransform: m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} m_AnchoredPosition: {x: 25.87, y: -25.5} - m_SizeDelta: {x: 31.732483, y: 19} + m_SizeDelta: {x: 31.732483, y: 20} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &2602899783160591258 CanvasRenderer: @@ -709,6 +709,6 @@ MonoBehaviour: m_AlignByGeometry: 0 m_RichText: 1 m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 + m_VerticalOverflow: 1 m_LineSpacing: 1 m_Text: 111 diff --git a/Assets/Resources/UI/Prefab/ResultList/LocalRouteItem-Mobile.prefab b/Assets/Resources/UI/Prefab/ResultList/LocalRouteItem-Mobile.prefab index 55077349..e14c4520 100644 --- a/Assets/Resources/UI/Prefab/ResultList/LocalRouteItem-Mobile.prefab +++ b/Assets/Resources/UI/Prefab/ResultList/LocalRouteItem-Mobile.prefab @@ -742,7 +742,6 @@ GameObject: - component: {fileID: 4085630360285719622} - component: {fileID: 4085630360285719621} - component: {fileID: 4085630360285719623} - - component: {fileID: 8165744897097518677} - component: {fileID: 6147895834536267412} - component: {fileID: 1057269569260839362} m_Layer: 5 @@ -825,18 +824,6 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: radius: 10 ---- !u!114 &8165744897097518677 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4085630360285719619} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f822eddd7a641a744a198d79e43e3f55, type: 3} - m_Name: - m_EditorClassIdentifier: --- !u!114 &6147895834536267412 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/Scenes/Ride/Competiton/CompetitionRankingFactory.cs b/Assets/Scripts/Scenes/Ride/Competiton/CompetitionRankingFactory.cs index 620380a3..98b71ee1 100644 --- a/Assets/Scripts/Scenes/Ride/Competiton/CompetitionRankingFactory.cs +++ b/Assets/Scripts/Scenes/Ride/Competiton/CompetitionRankingFactory.cs @@ -11,7 +11,7 @@ namespace Assets.Scenes.Ride.Scripts { public class CompetitionRankingFactory : BaseListFactory { - private bool isInit = false; + public bool isInit = false; private bool isnext = false; private List rankingList {get;set;} private AbstractPlayer currentPlayer { get; set; } diff --git a/Assets/Scripts/Scenes/Ride/Scripts/BaseUIManager.cs b/Assets/Scripts/Scenes/Ride/Scripts/BaseUIManager.cs index f2132a47..a8534b52 100644 --- a/Assets/Scripts/Scenes/Ride/Scripts/BaseUIManager.cs +++ b/Assets/Scripts/Scenes/Ride/Scripts/BaseUIManager.cs @@ -240,10 +240,11 @@ namespace Assets.Scenes.Ride.Scripts protected virtual void Update() { time -= Time.deltaTime; - while (time < 0) { + while (time < 0) + { MoveElevationImage(); BindDataSource(); - time = 1; + time += 1f; } MoveCamera(); } diff --git a/Assets/Scripts/Scenes/Ride/Scripts/ChartDataSourceScript.cs b/Assets/Scripts/Scenes/Ride/Scripts/ChartDataSourceScript.cs index 4c43d9b8..beb1b607 100644 --- a/Assets/Scripts/Scenes/Ride/Scripts/ChartDataSourceScript.cs +++ b/Assets/Scripts/Scenes/Ride/Scripts/ChartDataSourceScript.cs @@ -40,7 +40,6 @@ namespace Assets.Scenes.Ride.Scripts current = current - targetPoints > 0? current - targetPoints : 0; } - var ss = mData.Count - targetPoints; var interval = currentIndex - current; int mid = (int)(graph.DataSource.HorizontalViewSize / 2); //是否到达中间及以后的位置 @@ -51,9 +50,19 @@ namespace Assets.Scenes.Ride.Scripts { current = current + interval- mid; } + if (isReachEnd) + { + current = mData.Count - targetPoints; + } return current; } + public double GetCurrentEnd(int currentIndex) + { + var start = GetCurrentStart(currentIndex); + return start + targetPoints; + } + public double GetRealTimeEnd() { return (graph.HorizontalScrolling+ graph.DataSource.HorizontalViewSize) / mData.Count(); diff --git a/Assets/Scripts/Scenes/Ride/Scripts/CyclingController.cs b/Assets/Scripts/Scenes/Ride/Scripts/CyclingController.cs index 2c592c13..1d448f49 100644 --- a/Assets/Scripts/Scenes/Ride/Scripts/CyclingController.cs +++ b/Assets/Scripts/Scenes/Ride/Scripts/CyclingController.cs @@ -438,6 +438,7 @@ public class CyclingController : DeviceServiceMonoBase } else { + Utils.DestroyChildren(selectedPlayer.transform); var ss = Instantiate(onlineUserPrefab3d, selectedPlayer.transform); ss.transform.localScale = Is3dView ? MAX_SIZE : MIN_SIZE; } @@ -571,10 +572,15 @@ public class CyclingController : DeviceServiceMonoBase currentUser.SetDataSource(onlineTotalDistance, onlineDistance, onlineRider.Power, onlineRider.HeartRate, onlineRider.Cadence, onlineRider.TotalTicks, onlineRider.NickName, onlineRider.WeightKg, new Vector2d(onlineRider.Point.Latitude, onlineRider.Point.Longitude), index); } //如果是观察者且当前第一此进入场景(TODO:这样切换会闪一下待解决) - if (isWatch && currentPlayer is PlayerController) + if (isWatch && (currentPlayer is PlayerController || currentPlayer == null)) { - var userId = onlineRiders.FirstOrDefault()?.UserId??0; + var userId = onlineRiders.FirstOrDefault()?.UserId ?? 0; ChangeCurrentPlayer(userId); + var competitionRankingFactory = FindObjectOfType(); + if (competitionRankingFactory != null) + { + competitionRankingFactory.isInit = false; + } } //显示观察者头像 } @@ -875,6 +881,10 @@ public class CyclingController : DeviceServiceMonoBase int index = 0; var pointList = mapData.List; double sumDistance = 0; + if (endDistance >= mapData.TotalDistance) + { + return pointList.Count - 1; + } for (int i = 0; i < pointList.Count; i++) { @@ -887,7 +897,7 @@ public class CyclingController : DeviceServiceMonoBase break; } } - index = endDistance >= mapData.TotalDistance ? index + 1 : index; + index = endDistance >= mapData.TotalDistance ? pointList.Count - 1 : index; return index; } public Vector2d Along(double endDistance) diff --git a/Assets/Scripts/Scenes/Ride/Scripts/OnlinePlayerController.cs b/Assets/Scripts/Scenes/Ride/Scripts/OnlinePlayerController.cs index c313d276..a7de5d27 100644 --- a/Assets/Scripts/Scenes/Ride/Scripts/OnlinePlayerController.cs +++ b/Assets/Scripts/Scenes/Ride/Scripts/OnlinePlayerController.cs @@ -188,9 +188,9 @@ namespace Assets.Scenes.Ride.Scripts { trailRenderer?.Destroy(); } + var rect = ((RectTransform)arrowImage.transform); + rect.position = new Vector3(playerScreenPos.x, playerScreenPos.y, 0); - ((RectTransform)arrowImage.transform).position = playerScreenPos; - if (IsShowInfo) { ShowInfoPanel(playerScreenPos); @@ -251,52 +251,42 @@ namespace Assets.Scenes.Ride.Scripts private double horizontalScrolling { get; set; } private void MoveHead() { - var itemIndex = chartDataSourceScript.GetViewIndex(CurrentIndex); - var m = graph.DataSource.GetPoint("Player 2", itemIndex); - - graph.PointToWorldSpace(out Vector3 itemPosition, m.x, m.y, "Player 2"); - itemPosition.x -= 12f; - itemPosition.y += 5f; - if (headPanel == null) { var onlineHeadPanel = mainController.GetOnlineheadPanel(); headPanel = Instantiate(onlineHeadPanel); headPanel.transform.SetParent(graph.transform); headPanel.transform.localScale = new Vector3(0.8f, 0.8f, 0.8f); - headPanel.transform.position = itemPosition; } - else + if (CurrentIndex == 1) + { + + } + int nextIndex = CurrentIndex; + var viewIndex = chartDataSourceScript.GetViewIndex(nextIndex); + //人物移动 停止条件 到中间且线未加载完 + if (GetStart() && chartDataSourceScript.ReachMid(viewIndex) && !chartDataSourceScript.ReachEnd()) { - //if (UserId != mainController.currentPlayer.UserId) - //{ - // headPanel.transform.position = new Vector3(itemPosition.x, itemPosition.y, 0); - //} - //else + var currentDistance = CurrentDistance; + var distance = Distance; + var offset = currentDistance > 0 ? distance * 1000 / currentDistance : 1; + //horizontalScrolling += offset; + if (UserId == mainController.currentPlayer.UserId) { - int nextIndex = CurrentIndex; - var viewIndex = chartDataSourceScript.GetViewIndex(nextIndex); - //人物移动 停止条件 到中间且线未加载完 - if (GetStart() && chartDataSourceScript.ReachMid(viewIndex) && !chartDataSourceScript.ReachEnd()) - { - var currentDistance = CurrentDistance; - var distance = Distance; - var offset = currentDistance > 0 ? distance * 1000 / currentDistance : 1; - horizontalScrolling += offset; - if (UserId == mainController.currentPlayer.UserId) - { - graph.HorizontalScrolling = horizontalScrolling; - } - headPanel.transform.position = new Vector3(headPanel.transform.position.x, itemPosition.y, 0); - } - else - { - headPanel.transform.position = new Vector3(itemPosition.x, itemPosition.y, 0); - //headPanel.transform.DOMove(new Vector3(nextPosition.x, nextPosition.y, 0), 1); - } + graph.HorizontalScrolling += offset; } - //headPanel.transform.DOMove(new Vector3(itemPosition.x, itemPosition.y, 0), 1); } + //设定当前头像位置 + var m = graph.DataSource.GetPoint("Player 2", viewIndex); + graph.PointToWorldSpace(out Vector3 itemPosition, m.x, m.y, "Player 2"); + itemPosition.x -= 12f; + itemPosition.y += 5f; + headPanel.transform.position = new Vector3(itemPosition.x, itemPosition.y, 0); + //超出边界隐藏 + var start = graph.HorizontalScrolling; + var end = graph.HorizontalScrolling + graph.DataSource.HorizontalViewSize; + headPanel.SetActive( viewIndex >= start && viewIndex <= end); + //显示头像 if (head == null) { head = headPanel.transform.Find("Head").GetComponent(); @@ -319,6 +309,7 @@ namespace Assets.Scenes.Ride.Scripts //如果切换到当前用户,当前用户头像变大,并且只显示当前用户 if (mainController.currentPlayer.UserId == UserId) { + headPanel.transform.SetAsLastSibling(); head.gameObject.SetActive(true); headPanel.GetComponent().color = blue; rect.DOScale(new Vector3(1.2f, 1.2f, 1.2f), 0.5f); diff --git a/Assets/Scripts/Scenes/Ride/Scripts/PlayerController.cs b/Assets/Scripts/Scenes/Ride/Scripts/PlayerController.cs index 03303f91..475b6ac0 100644 --- a/Assets/Scripts/Scenes/Ride/Scripts/PlayerController.cs +++ b/Assets/Scripts/Scenes/Ride/Scripts/PlayerController.cs @@ -161,7 +161,7 @@ namespace Assets.Scenes.Ride.Scripts headPanel.transform.position = new Vector3(nextPosition.x, nextPosition.y, 0); //headPanel.transform.DOMove(new Vector3(nextPosition.x, nextPosition.y, 0), 1); } - headPanel.transform.SetSiblingIndex(999); + headPanel.transform.SetAsLastSibling(); } protected override IEnumerator MoveTo() diff --git a/Assets/Scripts/UI/Prefab/Race/RaceItemScript.cs b/Assets/Scripts/UI/Prefab/Race/RaceItemScript.cs index 78581bff..400f1322 100644 --- a/Assets/Scripts/UI/Prefab/Race/RaceItemScript.cs +++ b/Assets/Scripts/UI/Prefab/Race/RaceItemScript.cs @@ -40,6 +40,7 @@ public class RaceItemScript : MonoBehaviour, IPointerExitHandler, IPointerEnterH } public void Initial(MapCompetition mapCompetition,Transform parent,string from = "list") { + transform.GetComponent