赛事逻辑细节调整
This commit is contained in:
1 parent
b2a527f518
commit
eb1803c9ef
25 files changed
+6190
-2935
No files matched your search
@@ -7,6 +7,7 @@ using System;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
using System.Linq;
|
||||
using Mapbox.Utils;
|
||||
|
||||
namespace Assets.Scenes.Ride.Scripts
|
||||
{
|
||||
@@ -31,6 +32,13 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
if (mainController.cyclingController.Mode == CyclingModel.Competition)
|
||||
{
|
||||
arrowImage = Instantiate(Resources.Load<Image>("UI/Prefab/Match/CompetitionArrow"), uiObject);
|
||||
//比赛模式
|
||||
if (!string.IsNullOrEmpty(headUrl))
|
||||
{
|
||||
var rawImge = arrowImage.transform.Find("Head").GetComponent<RawImage>();
|
||||
Utils.DisplayImage(rawImge, headUrl, true);
|
||||
rawImge.gameObject.SetActive(true);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -55,7 +63,7 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
}
|
||||
}
|
||||
double diff = 0;
|
||||
public void SetDataSource(double _totalDistance, double _distance,string Name,double weightKg,int index=0)
|
||||
public void SetDataSource(double _totalDistance, double _distance,string Name,double weightKg,Vector2d point,int index=0)
|
||||
{
|
||||
totalDistance = _totalDistance;
|
||||
distance = _distance;
|
||||
@@ -63,8 +71,12 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
nickName = Name;
|
||||
weightKgStr = weightKg.ToString("f2") + "W/KG";
|
||||
CurrentIndex = index;
|
||||
//Point = point;
|
||||
currentlatlong = point;
|
||||
}
|
||||
|
||||
public Vector2d Point { get; set; }
|
||||
|
||||
private string headUrl;
|
||||
public void SetHead(string url )
|
||||
{
|
||||
@@ -108,6 +120,8 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
infoPanel?.Destroy();
|
||||
transform.gameObject.Destroy();
|
||||
}
|
||||
|
||||
TrailRenderer trailRenderer { get; set; }
|
||||
|
||||
protected override void AfterExcute()
|
||||
{
|
||||
@@ -117,9 +131,34 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
{
|
||||
playerScreenPos.y += 10f;
|
||||
}
|
||||
//如果观察的是当前用户
|
||||
//如果观察的是当前用户 隐藏UI 添加trailrender
|
||||
var iscurrentUser = mainController.currentPlayer.UserId == UserId;
|
||||
arrowImage.gameObject.SetActive(!iscurrentUser);
|
||||
if (iscurrentUser && trailRenderer == null)
|
||||
{
|
||||
trailRenderer = gameObject.AddComponent<TrailRenderer>();
|
||||
trailRenderer = FindObjectOfType<TrailRenderer>();
|
||||
//var color7 = Resources.Load<Material>("UI/Material/color7");
|
||||
var Graph2 = Resources.Load<Material>("UI/Material/3dGraph2");
|
||||
trailRenderer.materials = new Material[] { Graph2 };
|
||||
trailRenderer.time = 30;
|
||||
trailRenderer.startWidth = 1f;
|
||||
trailRenderer.endWidth = 1f;
|
||||
trailRenderer.startColor = new Color(0.9764706f, 0.1882353f, 0.5254902f, 1f);
|
||||
trailRenderer.endColor = new Color(0.9764706f, 0.1882353f, 0.5254902f, 1f);
|
||||
trailRenderer.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off;
|
||||
trailRenderer.allowOcclusionWhenDynamic = false;
|
||||
trailRenderer.textureMode = LineTextureMode.Tile;
|
||||
trailRenderer.motionVectorGenerationMode = MotionVectorGenerationMode.ForceNoMotion;
|
||||
trailRenderer.receiveShadows = false;
|
||||
trailRenderer.rayTracingMode = UnityEngine.Experimental.Rendering.RayTracingMode.Off;
|
||||
}
|
||||
//如果不是当前用户则销毁轨迹效果
|
||||
if (!iscurrentUser)
|
||||
{
|
||||
trailRenderer?.Destroy();
|
||||
}
|
||||
|
||||
((RectTransform)arrowImage.transform).position = playerScreenPos;
|
||||
|
||||
if (IsShowInfo)
|
||||
@@ -197,10 +236,31 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
}
|
||||
else
|
||||
{
|
||||
headPanel.transform.position = new Vector3(itemPosition.x, itemPosition.y, 0);
|
||||
if (UserId != mainController.currentPlayer.UserId)
|
||||
{
|
||||
headPanel.transform.position = new Vector3(itemPosition.x, itemPosition.y, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
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;
|
||||
graph.HorizontalScrolling += offset;
|
||||
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);
|
||||
}
|
||||
}
|
||||
//headPanel.transform.DOMove(new Vector3(itemPosition.x, itemPosition.y, 0), 1);
|
||||
}
|
||||
|
||||
if (head == null)
|
||||
{
|
||||
head = headPanel.GetComponentInChildren<RawImage>();
|
||||
@@ -219,13 +279,21 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
{
|
||||
MoveHead();
|
||||
var rect = ((RectTransform)(headPanel.transform));
|
||||
//如果切换到当前用户,当前用户头像变大
|
||||
//如果切换到当前用户,当前用户头像变大,并且只显示当前用户
|
||||
if (mainController.currentPlayer.UserId == UserId)
|
||||
{
|
||||
headPanel.SetActive(true);
|
||||
rect.DOScale(new Vector3(1.5f, 1.5f, 1.5f), 0.5f);
|
||||
//移动海拔图
|
||||
var currentDistance = CurrentDistance;
|
||||
var distance = Distance;
|
||||
var offset = currentDistance > 0 ? distance * 1000 / currentDistance : 1;
|
||||
graph.HorizontalScrolling += offset;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
headPanel.SetActive(false);
|
||||
rect.DOScale(new Vector3(1f, 1f, 1f), 0.5f);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user