powerfun-unity/Assets/Scenes/Ride/Scripts/SingleUIManager.cs

643 lines
29 KiB
C#

using UnityEngine;
using UnityEngine.UI;
using System.Linq;
using Mapbox.Unity.Map;
using DG.Tweening;
using System;
using Assets.Scenes.Ride.Scripts.Model;
using UnityEngine.SceneManagement;
using System.Collections.Generic;
using UnityEngine.EventSystems;
using ChartAndGraph;
using Assets.Scripts;
namespace Assets.Scenes.Ride.Scripts
{
public class SingleUIManager : MonoBehaviour
{
#region UI control
GameObject target;
GameObject nearByPanel;//附近的人列表
GameObject leftPanel;//伴侣骑行列表
GameObject nextSlopePanel;//下一个坡度面板
GameObject currentSlopePanel;//当前坡度面板
GameObject selectPanel;//骑行模式选择
GameObject selectPlayer;//伴侣骑行选择窗口
GameObject reviewPanel;
GameObject titlePanel;
GameObject quitPanel;//退出界面
Text nextSlopeText;//下一个坡度
Text nextSlopeDistanceText;//下一个坡度距离
Text currentSlopeText;//当前坡度
Text currentSlopeDistanceText;//当前坡度已骑行距离
Text currentSlopeToatalDistanceText;//当前坡度总距离
Text speedTxt;//当前速度
Text powerTxt;//功率
Text timerTxt;//计时器
Text ditance;//当前骑行距离
Text totalDistance;//当前骑行距离
Text candance;//踏频
Text heartRate;//心率
Text countDownTxt;//倒计时5s
Text mapName;//路书名称
Text fps;//fps
Text totalClimb;
Button startBtn;//开始按钮
Button simpleBtn;//进入简约模式按钮
Button pauseButton;//暂停按钮
Button settingButton;//设置那妞
Button deviceButton;//设备按钮
Button viewButton;//视角按钮
Button exitButton;//退出按钮
Button singleButton;//单人骑行按钮
Button shadowButton;//影子选手按钮
Button addButton;//添加伴侣骑行
Button saveButton;//退出panel保存按钮
Button cancelQuitButton;//退出panel取消按钮
Button closeQuitButton;//退出panel关闭按钮
RawImage head;//海拔图头像
RawImage miniMap;//小地图
RawImage altitudeGraph;//海拔图
Image leftImage;
Image rightImage;
#endregion
#region
public PlayerController playerController;//当前用户
public CyclingController mainController;//主控制器
#endregion
private float timeRemaining = 1f;
private int count = 0;
Image arrow;
AbstractMap map;
Transform t;
GameObject alertPanel;
Button alertBtn;
Button alertCloseBtn;
Text preSlopeText;
GameObject startPanel;
GameObject headPanel;
GameObject settingPanel;
Button abandonButton;
GameObject singleArea;
Sprite downhill1;
Sprite uphill1;
Sprite straight;
Sprite downhill1Small;
Sprite uphill1Small;
Sprite straightSmall;
Image nextSlopeImage;
Image currentSlopeImage;
void Awake()
{
#region
fps = transform.Find("Panel/FPS").GetComponent<Text>();
arrow = transform.Find("Panel/Arrow").GetComponent<Image>();
map = transform.parent.Find("Map").GetComponent<AbstractMap>();
leftPanel = transform.Find("Panel/ReviewPanel").gameObject;
nearByPanel = transform.Find("Panel/NearPanel").gameObject;
startPanel = transform.Find("Panel/StartPanel").gameObject;
startBtn = transform.Find("Panel/StartPanel/StartButton").GetComponent<Button>();
simpleBtn = transform.Find("Panel/SimpleButton").GetComponent<Button>();
ditance = transform.Find("Panel/ComputerPanel/Distance").GetComponent<Text>();
titlePanel = transform.Find("Panel/TitlePanel").gameObject;
totalDistance = transform.Find("Panel/TitlePanel/TotalDistance").GetComponent<Text>();
candance = transform.Find("Panel/PowerPanel/Cadance").GetComponent<Text>();
heartRate = transform.Find("Panel/PowerPanel/Hrv").GetComponent<Text>();
nextSlopePanel = transform.Find("Panel/NextSlopePanel").gameObject;
currentSlopePanel = transform.Find("Panel/CurrentSlopePanel").gameObject;
nextSlopeText = transform.Find("Panel/NextSlopePanel/NextSlopeText").GetComponent<Text>();
nextSlopeDistanceText = transform.Find("Panel/NextSlopePanel/NextSlopeDistance").GetComponent<Text>();
currentSlopeText = transform.Find("Panel/CurrentSlopePanel/CurrentSlopeText").GetComponent<Text>();
currentSlopeDistanceText = transform.Find("Panel/CurrentSlopePanel/CurrentSlopeDistance").GetComponent<Text>();
currentSlopeToatalDistanceText = transform.Find("Panel/CurrentSlopePanel/TotalSlopeDistance").GetComponent<Text>();
speedTxt = transform.Find("Panel/ComputerPanel/Speed").GetComponent<Text>();
powerTxt = transform.Find("Panel/PowerPanel/Power").GetComponent<Text>();
timerTxt = transform.Find("Panel/ComputerPanel/Timer").GetComponent<Text>();
countDownTxt = transform.Find("Panel/CountDown").GetComponent<Text>();
mapName = transform.Find("Panel/TitlePanel/MapName").GetComponent<Text>();
totalClimb = transform.Find("Panel/ComputerPanel/TotalClimb").GetComponent<Text>();
//img = transform.Find("Panel/ElevationChart/HeadImage").GetComponent<RawImage>();
head = transform.Find("Panel/GraphChart/HeadPanel/Head").GetComponent<RawImage>();
headPanel = transform.Find("Panel/GraphChart/HeadPanel").gameObject;
t = transform.Find("Panel/GraphChart/Button");
miniMap = transform.Find("Panel/MiniMap").GetComponent<RawImage>();
alertPanel = transform.Find("Panel/Alert").gameObject;
selectPanel = transform.Find("Panel/SelectPanel").gameObject;
selectPlayer = transform.Find("Panel/SelectPlayer").gameObject;
reviewPanel = transform.Find("Panel/ReviewPanel").gameObject;
quitPanel = transform.Find("Panel/QuitPanel").gameObject;
pauseButton = transform.Find("Panel/ToolBarPanel/StartOrPauseButton").GetComponent<Button>();
settingButton = transform.Find("Panel/ToolBarPanel/SettingButton").GetComponent<Button>();
deviceButton = transform.Find("Panel/ToolBarPanel/DeviceButton").GetComponent<Button>();
exitButton = transform.Find("Panel/ToolBarPanel/ExitButton").GetComponent<Button>();
singleButton = transform.Find("Panel/SelectPanel/SingleButton").GetComponent<Button>();
shadowButton = transform.Find("Panel/SelectPanel/ShadowButton").GetComponent<Button>();
singleArea = transform.Find("Panel/ReviewPanel/SingleArea").gameObject;
addButton = transform.Find("Panel/ReviewPanel/SingleArea/AddButton").GetComponent<Button>();
saveButton = transform.Find("Panel/QuitPanel/QuitPanel/SaveButton").GetComponent<Button>();
cancelQuitButton = transform.Find("Panel/QuitPanel/QuitPanel/CancelButton").GetComponent<Button>();
closeQuitButton = transform.Find("Panel/QuitPanel/QuitPanel/CloseButton").GetComponent<Button>();
abandonButton = transform.Find("Panel/QuitPanel/QuitPanel/AbandonButton").GetComponent<Button>();
viewButton =transform.Find("Panel/ViewButton").GetComponent<Button>();
altitudeGraph = transform.Find("Panel/TitlePanel/AltitudeGraph").GetComponent<RawImage>();
leftImage = transform.Find("Panel/TitlePanel/Left").GetComponent<Image>();
rightImage = transform.Find("Panel/TitlePanel/Right").GetComponent<Image>();
settingPanel = transform.Find("Panel/SettingPanel").gameObject;
preSlopeText = transform.Find("Panel/PreSlopePanel/PreSlopeText").GetComponent<Text>();
nextSlopeImage = transform.Find("Panel/NextSlopePanel/NextSlopeImage").GetComponent<Image>();
currentSlopeImage = transform.Find("Panel/CurrentSlopePanel/Image").GetComponent<Image>();
//加载坡度图片
downhill1 = Resources.Load<Sprite>("Images/Ride/downhill 1");
uphill1 = Resources.Load<Sprite>("Images/Ride/uphill 1");
straight = Resources.Load<Sprite>("Images/Ride/straight");
downhill1Small = Resources.Load<Sprite>("Images/Ride/downhill-small");
uphill1Small = Resources.Load<Sprite>("Images/Ride/uphill-small");
straightSmall = Resources.Load<Sprite>("Images/Ride/straight-small");
target = transform.parent.Find("Target").gameObject;
UIManager.AddEvent(startBtn.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, StartRide);
UIManager.AddEvent(simpleBtn.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, ClearPanel);
UIManager.AddEvent(pauseButton.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, PauseRide);
UIManager.AddEvent(settingButton.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, ShowSettingPanel);
UIManager.AddEvent(deviceButton.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, ShowDevicePanel);
UIManager.AddEvent(exitButton.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, StopRide);
UIManager.AddEvent(singleButton.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, SingleRide);
UIManager.AddEvent(shadowButton.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, ShadowRide);
UIManager.AddEvent(addButton.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, ShowSelectPlayer);
UIManager.AddEvent(saveButton.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, SaveRide);
UIManager.AddEvent(abandonButton.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, CancelQuit);
UIManager.AddEvent(closeQuitButton.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, CloseQuit);
UIManager.AddEvent(cancelQuitButton.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, CloseQuit);
UIManager.AddEvent(viewButton.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, ChangeView);
UIManager.AddEvent(singleButton.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerEnter, OnPointEnter);
UIManager.AddEvent(shadowButton.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerEnter, OnPointEnter);
UIManager.AddEvent(singleButton.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerExit, OnPointExit);
UIManager.AddEvent(shadowButton.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerExit, OnPointExit);
#endregion
}
float? localY;
void OnPointEnter(BaseEventData pointerEventData)
{
var button = ((PointerEventData)pointerEventData).pointerEnter.GetComponent<Button>();
if (button != null)
{
var enterTransform = button.transform;
if (localY == null)
{
localY = enterTransform.localPosition.y;
}
enterTransform.DOLocalMoveY(localY.Value + 5f, 0.5f);
}
}
void OnPointExit(BaseEventData pointerEventData)
{
var button =((PointerEventData)pointerEventData).pointerEnter.GetComponent<Button>();
if (button != null)
{
var enterTransform = button.transform;
enterTransform.DOLocalMoveY(localY.Value, 0.5f);
}
}
void Start()
{
Init();
RenderChart();
//ContinueRide();//继续骑行
}
// Update is called once per frame
float time = 1f;
void Update()
{
time -= Time.deltaTime;
while (time < 0) {
MoveChartMarkPoint();
BindDataSource();
fps.text = (1 / Time.deltaTime).ToString();
time = 1;
}
CountDown();
MoveCamera();
}
private void Init()
{
playerController = FindObjectOfType<PlayerController>();
mainController = FindObjectOfType<CyclingController>();
var route = mainController.GetRoute();
mapName.text = route.RouteInstance.Name;
totalDistance.text = Math.Round(mainController.GetMapData().TotalDistance, 1).ToString() + "KM";//总里程
Utils.DisplayImage(StartCoroutine, altitudeGraph, route.RouteInstance.AltitudeGraph);//渲染海拔图
if (mainController.mapRouteRankingList == null || mainController.mapRouteRankingList.Count == 0)
{
shadowButton.image.sprite = Resources.Load<Sprite>("Images/Ride/Shadow Mode_no");
shadowButton.enabled = false;
shadowButton.interactable = false;
}
else
{
shadowButton.enabled = true;
shadowButton.interactable = true;
}
//标记3d的地图可以用
if (!route.RouteInstance.Enable3D)
{
viewButton.enabled = false;
viewButton.interactable = false;
}
}
//继续骑行如果有伴侣就自动进入伴侣骑行
public void ContinueRide()
{
if (mainController.routeResult != null)
{
if (mainController.routeResult.Mode == CyclingModel.Review.ToString())
{
mainController.SetCyclingModel(CyclingModel.Review);
selectPanel.SetActive(false);
var reviewFactory = reviewPanel.transform.GetComponent<ReviewFactory>();
reviewFactory.Refresh();
}
else if (mainController.routeResult.Mode == CyclingModel.Single.ToString())
{
mainController.SetCyclingModel(CyclingModel.Single);
selectPanel.SetActive(false);
}
//显示附近的人面板
nearByPanel.SetActive(true);
}
}
//移动摄像头和箭头位置
private void MoveCamera()
{
if (target != null)
{
target.transform.position = playerController.transform.position; //new Vector3((float)Math.Round(player.transform.position.x,1), 0, (float)Math.Round(player.transform.position.z,1));
if (!mainController.Is3dView)
{ //target.transform.rotation = playerController.transform.rotation;//new Quaternion(playerController.transform.rotation.x, playerController.transform.rotation.y +1f, playerController.transform.rotation.z, playerController.transform.rotation.w);
target.transform.eulerAngles = new Vector3(0, playerController.transform.eulerAngles.y + 160f, 0);
}
else
{
target.transform.eulerAngles = new Vector3(0, -65f, 0);
}
//控制照片移动
((RectTransform)arrow.transform).position = Camera.main.WorldToScreenPoint(target.transform.position);
if (playerController.Speed > 0 && mainController.isStart)
{
arrow.transform.Find("bg").gameObject.SetActive(true);
}
else
{
arrow.transform.Find("bg").gameObject.SetActive(false);
}
}
}
//倒计时
private void CountDown()
{
if (count > 0)
{
timeRemaining -= Time.deltaTime;
if (timeRemaining <= 0)//定时器
{
count--;
if (count == 0)
{
mainController.SetStart();
countDownTxt.gameObject.SetActive(false);
}
if (count == 1 && mainController.cyclingModel == CyclingModel.Single)
{
reviewPanel.GetComponent<CanvasGroup>().DOFade(0, 1);
//附近的人
// nearByPanel.GetComponent<CanvasGroup>().DOFade(0, 1);
}
timeRemaining = 1.0f;
}
}
countDownTxt.text = count.ToString();
}
private void BindDataSource()
{
//获取当前选中玩家绑定当前UI
if (playerController != null)
{
speedTxt.text = $"{Math.Round(playerController.Speed, 1)}";
powerTxt.text = $"{playerController.Power}";
timerTxt.text = Helper.FormatTicks(playerController.TotalTicks);
ditance.text = Math.Round(playerController.TotalDistance, 1).ToString("f1");
heartRate.text = $"{Math.Round(playerController.HeartRate, 0)}";
candance.text = $"{Math.Round(playerController.Cadance, 0)}";
preSlopeText.text = $"{Math.Round(playerController.PreSlope, 1)}%";
currentSlopeToatalDistanceText.text = $"Total:{Math.Round(playerController.CurrentDistance, 0)}M";
//坡度相关数据
nextSlopeText.text = Math.Round(playerController.NextSlope, 1).ToString() + "%";
//nextSlopeDistanceText.GetComponent<NumberDotween>().AnimateNum((float)playerController.NextSlopeDistance, 0, "-{0}M");
nextSlopeDistanceText.text = $"{Math.Round(playerController.NextSlopeTotalDistance, 0)}M";
currentSlopeText.text = Math.Round(playerController.CurrentSlope, 1).ToString() + "%";
currentSlopeDistanceText.GetComponent<NumberDotween>().AnimateNum((float)playerController.CurrentSlopeDistance, Math.Round(playerController.CurrentDistance, 0), playerController.CurrentIndex, 0, "{0}M");
totalClimb.text = Math.Round(playerController.TotalClimb, 0).ToString();
//动态改变坡度图片
if (playerController.CurrentSlope >= 1 )
{
currentSlopeImage.sprite = uphill1;
}
else if(playerController.CurrentSlope > -1|| playerController.CurrentSlope<1)
{
currentSlopeImage.sprite = straight;
}
else
{
currentSlopeImage.sprite = downhill1;
}
//下一个坡度
if (playerController.NextSlope >= 1)
{
nextSlopeImage.sprite = uphill1Small;
}
else if (playerController.NextSlope > -1 || playerController.NextSlope < 1)
{
nextSlopeImage.sprite = straightSmall;
}
else
{
nextSlopeImage.sprite = downhill1Small;
}
}
}
//重置游戏
public void Reset()
{
mainController.isStart = false;
mainController.isPause = false;
mainController.isQuit = false;
count = 0;
countDownTxt.gameObject.SetActive(false);
}
private void SingleRide(BaseEventData baseEventData)
{
selectPanel.SetActive(false);
mainController.SetCyclingModel(CyclingModel.Single);
//显示单人骑行列表
reviewPanel.SetActive(true);
//显示附近的人列表
nearByPanel.SetActive(true);
}
private void ShadowRide(BaseEventData baseEventData)
{
//mainController.SetCyclingModel(CyclingModel.Review);
selectPanel.SetActive(false);
//显示影子选手骑行列表
selectPlayer.SetActive(true);
//显示附近的人列表
nearByPanel.SetActive(true);
}
private void ShowSelectPlayer(BaseEventData baseEventData)
{
Reset();
selectPlayer.SetActive(true);
}
public void StartRide(BaseEventData baseEventData)
{
var antConnected = mainController.CheckAnt();//初始化ant+设备
#if UNITY_EDITOR
antConnected = true;
#endif
if (!antConnected)
{
alertPanel.SetActive(true);
}
else {
//加个5秒钟倒计时
count = 5;
startPanel.SetActive(false);
startBtn.gameObject.SetActive(false);
countDownTxt.gameObject.SetActive(true);
countDownTxt.text = count.ToString();
}
}
//暂停游戏
private void PauseRide(BaseEventData baseEventData)
{
mainController.SetPause();
count = 0;
countDownTxt.gameObject.SetActive(false);
startBtn.gameObject.SetActive(true);
startPanel.SetActive(true);
}
private void SaveRide(BaseEventData baseEventData)
{
if (playerController.TotalTicks > 0 && !mainController.isQuit )
{
mainController.SetQuit();
playerController.Upload();
quitPanel.SetActive(false);
}
else
{
SceneManager.LoadScene("MainScene");
}
}
private void CancelQuit(BaseEventData baseEventData)
{
quitPanel.SetActive(false);
SceneManager.LoadScene("MainScene");
}
private void CloseQuit(BaseEventData baseEventData)
{
quitPanel.SetActive(false);
}
//切换到3d视角
private void ChangeView(BaseEventData baseEventData)
{
mainController.ChangeMapImageStyle(arrow.gameObject);
}
//结束游戏
private void StopRide(BaseEventData baseEventData)
{
if (playerController.TotalTicks > 0)
{
quitPanel.SetActive(true);
}
else
{
SceneManager.LoadScene("MainScene");
}
}
//显示设备连接
private void ShowDevicePanel(BaseEventData baseEventData)
{
UIManager.Show(UIManager.Instance.DevicePanel, transform.Find("Panel").GetComponent<PFUIPanel>());
}
//显示设置
private void ShowSettingPanel(BaseEventData baseEventData)
{
settingPanel.SetActive(true);
}
int isSimple = 1;
private bool clearLock = true;
private void ClearPanel(BaseEventData baseEventData)
{
if (clearLock)
{
clearLock = false;
leftPanel.transform.DOLocalMove(new Vector3(leftPanel.transform.localPosition.x + isSimple * 430f, leftPanel.transform.localPosition.y, leftPanel.transform.localPosition.z), 1);
titlePanel.transform.DOLocalMove(new Vector3(titlePanel.transform.localPosition.x, titlePanel.transform.localPosition.y + isSimple * 200f, titlePanel.transform.localPosition.z), 1);
miniMap.transform.DOLocalMove(new Vector3(miniMap.transform.localPosition.x , miniMap.transform.localPosition.y + isSimple * 260f, miniMap.transform.localPosition.z), 1);
nextSlopePanel.transform.DOLocalMove(new Vector3(nextSlopePanel.transform.localPosition.x, nextSlopePanel.transform.localPosition.y + isSimple * 260f, nextSlopePanel.transform.localPosition.z), 1);
currentSlopePanel.transform.DOLocalMove(new Vector3(currentSlopePanel.transform.localPosition.x, currentSlopePanel.transform.localPosition.y + isSimple * 80f, currentSlopePanel.transform.localPosition.z), 1);
nearByPanel.transform.DOLocalMove(new Vector3(nearByPanel.transform.localPosition.x + isSimple * -330f, nearByPanel.transform.localPosition.y, nearByPanel.transform.localPosition.z), 1).onComplete += () =>
{
clearLock = true;
isSimple *= -1;
simpleBtn.transform.GetComponent<Image>().sprite = isSimple == -1 ? Resources.Load<Sprite>("Images/Ride/full") : Resources.Load<Sprite>("Images/Ride/simple");
};
}
}
GraphChartBase graph;
ChartDataSourceScript chartDataSourceScript;
//初始化海拔图
void RenderChart()
{
var mapData = mainController.GetMapData();
double x = 0;
Dictionary<double, double> dataSource = new Dictionary<double, double>();
List<double> dd = new List<double>();
var one = mapData.List.Where(c => c.Distance == 0).Count();
foreach (var item in mapData.List)
{
x += item.Distance;
if (!dataSource.ContainsKey(x))
{
dataSource.Add(x, item.Elevation);
}
dd.Add(item.Elevation);
}
chartDataSourceScript = transform.Find("Panel/GraphChart").GetComponent<ChartDataSourceScript>();
graph = transform.Find("Panel/GraphChart").GetComponent<GraphChartBase>();
chartDataSourceScript.SetDataSource(dd.ToArray());
if (App.CurrentUser != null)
{
Utils.DisplayImage(StartCoroutine, head, App.CurrentUser.WxHeadImg);
}
}
//挪到人物脚本中处理
void MoveChartMarkPoint()
{
//if (mainController.isStart)
{
MoverCurrentUserHead();
MoveOtherHeads();
MoveElevationImage();
}
}
//移动当前用户头像
private void MoverCurrentUserHead()
{
Vector3 prePos = headPanel.transform.position;
int nextIndex = playerController.CurrentIndex +1;
var viewIndex = chartDataSourceScript.GetViewIndex(nextIndex);
if (!mainController.isStart && !mainController.isPause && !mainController.isQuit)//未开始未暂停未结束
{
viewIndex = 0;
}
var n = graph.DataSource.GetPoint("Player 2", viewIndex);
graph.PointToWorldSpace(out Vector3 nextPosition, n.x, n.y, "Player 2");
nextPosition.x -= 14f;
nextPosition.y += 5f;
//人物移动 停止条件 到中间且线未加载完
if (chartDataSourceScript.ReachMid(viewIndex) && !chartDataSourceScript.ReachEnd())
{
var currentDistance = playerController.CurrentDistance;
var distance = playerController.Distance;
var offset = currentDistance > 0 ? distance * 1000 / currentDistance : 1;
graph.HorizontalScrolling += offset;
headPanel.transform.DOMove(new Vector3(prePos.x, nextPosition.y, 0), 1);
}
else
{
headPanel.transform.DOMove(new Vector3(nextPosition.x , nextPosition.y, 0), 1);
}
headPanel.transform.SetSiblingIndex(999);
}
//移动其他骑手头像
private void MoveOtherHeads()
{
var others = FindObjectsOfType<OtherPlayerController>();
foreach (var item in others)
{
var itemIndex = chartDataSourceScript.GetViewIndex(item.CurrentIndex) + 1;
if (!mainController.isStart && !mainController.isPause && !mainController.isQuit)//未开始未暂停未结束
{
itemIndex = 0;
}
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;
item.MoveHead(graph.transform, itemPosition);
}
}
//移动总海拔图范围
private void MoveElevationImage()
{
if (chartDataSourceScript.mData.Count <= chartDataSourceScript.targetPoints)
{
leftImage.gameObject.SetActive(false);
rightImage.gameObject.SetActive(false);
altitudeGraph.gameObject.SetActive(false);
}
else
{
var start = chartDataSourceScript.GetRealTimeStart();
var end = chartDataSourceScript.GetRealTimeEnd();
var originWith = Screen.width / 1600D * 30D;
var with = Screen.width / 1600D * 286D;
var left = start * with + originWith;
var right = end * with + originWith;
leftImage.transform.DOMoveX((float)left, 1);
rightImage.transform.DOMoveX((float)right, 1);
}
}
}
}