修复海拔图头像切换以及移动错位问题

This commit is contained in:
lishuo 2021-09-27 18:43:41 +08:00
parent 65e7d9c4f4
commit 75900ccf3d
10 changed files with 60 additions and 61 deletions

View File

@ -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

View File

@ -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

View File

@ -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<CompetitionRankingSortModel> rankingList {get;set;}
private AbstractPlayer currentPlayer { get; set; }

View File

@ -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();
}

View File

@ -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();

View File

@ -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<CompetitionRankingFactory>();
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)

View File

@ -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<RawImage>();
@ -319,6 +309,7 @@ namespace Assets.Scenes.Ride.Scripts
//如果切换到当前用户,当前用户头像变大,并且只显示当前用户
if (mainController.currentPlayer.UserId == UserId)
{
headPanel.transform.SetAsLastSibling();
head.gameObject.SetActive(true);
headPanel.GetComponent<Image>().color = blue;
rect.DOScale(new Vector3(1.2f, 1.2f, 1.2f), 0.5f);

View File

@ -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()

View File

@ -40,6 +40,7 @@ public class RaceItemScript : MonoBehaviour, IPointerExitHandler, IPointerEnterH
}
public void Initial(MapCompetition mapCompetition,Transform parent,string from = "list")
{
transform.GetComponent<Button>().onClick.RemoveAllListeners();
#if !(UNITY_ANDROID || UNITY_IOS)
transform.GetComponent<Button>().onClick.AddListener(() =>
{

View File

@ -78,7 +78,7 @@ public class LocalRouteItem : MonoBehaviour, IPointerExitHandler, IPointerEnterH
}
Name.text = record.RouteName;
Time.text = record.StartTime.ToString();
Time.text = record.StartTime.ToString("HH:mm:ss dd-MM-yyyy");
RidingTime.text = $"<color={titleColor}>Riding time:</color>{Helper.FormatTicks(record.Ticks)}";
RidingDistance.text = $"<color={titleColor}>Mileage:</color>{record.EndDistance.ToString("#0.00")}KM";
Device.text = $"<color={titleColor}>Cycling equipment:</color>{record.ManufacturerName}";