diff --git a/Assets/Scripts/UI/Prefab/Panel/RowerHomeScript.cs b/Assets/Scripts/UI/Prefab/Panel/RowerHomeScript.cs index 6d6df2c2..09d78753 100644 --- a/Assets/Scripts/UI/Prefab/Panel/RowerHomeScript.cs +++ b/Assets/Scripts/UI/Prefab/Panel/RowerHomeScript.cs @@ -109,12 +109,18 @@ public class RowerHomeScript : PFUIPanel uint totalDistance = 0; Transform slider; + RowerGraphChartFeed rowerGraphChartFeed { get; set; } + RowerGraphChartFeed graphChartFeed { get; set; } protected override void Start() { var rect = transform.GetComponent(); rect.offsetMax = Vector2.zero; rect.offsetMin = Vector2.zero; + + rowerGraphChartFeed = mid.Find("GraphChart").GetComponent(); + graphChartFeed = transform.Find("Rower/Modes/Scroll/M2/MyData/GraphChart").GetComponent(); } + Transform M1 { get; set; } protected override void Awake() { Id = Guid.NewGuid().ToString(); @@ -158,6 +164,7 @@ public class RowerHomeScript : PFUIPanel {13,Resources.Load("Images/RowerNew/序列帧/划船机0014") }, {14,Resources.Load("Images/RowerNew/序列帧/划船机0015") }, }; + rowerMultiModeScript = GetComponent(); GetComponent().localScale = Vector3.one; GetComponent().localPosition = Vector3.zero; records = new List(); @@ -166,11 +173,30 @@ public class RowerHomeScript : PFUIPanel historyPullList = new List(); //mainNav.ShowExit(); + M1 = transform.Find("Rower/Modes/Scroll/M1"); left = transform.Find("Rower/Modes/Scroll/M1/Left"); bottom = transform.Find("Rower/Bottom"); + KMText = bottom.Find("KM/Value").GetComponent(); + TimeText = bottom.Find("Time/Value").GetComponent(); + BPMText = bottom.Find("BPM/Value").GetComponent(); mid = transform.Find("Rower/Modes/Scroll/M1/Mid"); rmydata = transform.Find("Rower/Modes/Scroll/M2/MyData"); slider = transform.Find("ResBar/PFUISlider"); + + WText = mid.Find("W/Value").GetComponent(); + rmyWText = rmydata.Find("W/Value").GetComponent(); + FiveText = bottom.Find("500/Value").GetComponent(); + MSText = bottom.Find("MS/Value").GetComponent(); + ExpectedText = bottom.Find("Expected/Value").GetComponent(); + + TimesText = left.Find("Times/Value").GetComponent(); + Caloriestext = left.Find("Calories/Value").GetComponent(); + rmyCaloriestext = rmydata.Find("Calories/Value").GetComponent(); + AvgForceText = mid.Find("AvgForce/Value").GetComponent(); + rmyAvgForceText = rmydata.Find("AvgForce/Value").GetComponent(); + PeakForceText = mid.Find("PeakForce/Value").GetComponent(); + rmyPeakForceText = rmydata.Find("PeakForce/Value").GetComponent(); + UIManager.AddEvent(transform.Find("ResBar/BtnAdd").gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, b => { if (RowerData != null) @@ -560,45 +586,45 @@ public class RowerHomeScript : PFUIPanel left.Find("Rower").GetComponent().sprite = spriteDict[0]; left.Find("LeftImage/Value").GetComponent().fillAmount = 0; left.Find("RightImage/Value").GetComponent().fillAmount = 0; - left.Find("Times/Value").GetComponent().text = "---"; - left.Find("Calories/Value").GetComponent().text = "---"; - rmydata.Find("Calories/Value").GetComponent().text = "---"; + TimesText.text = "---"; + Caloriestext.text = "---"; + rmyCaloriestext.text = "---"; pullList.Clear(); historyPullList.Clear(); - SetChartData(pullList, historyPullList); + //SetChartData(pullList, historyPullList); //mid.Find("GraphChart").GetComponent().SetData(pullList); openTimer = false; if (rowerType.type == 0) { - bottom.Find("Time/Value").GetComponent().text = "---"; - bottom.Find("KM/Value").GetComponent().text = "---"; + TimeText.text = "---"; + KMText.text = "---"; } else { if (rowerType.type == 1) { - bottom.Find("Time/Value").GetComponent().text = "---"; - bottom.Find("KM/Value").GetComponent().text = $"{rowerType.value}"; + TimeText.text = "---"; + KMText.text = $"{rowerType.value}"; } else { - bottom.Find("Time/Value").GetComponent().text = TimeSpan.FromSeconds(rowerType.value).ToPFString(); - bottom.Find("KM/Value").GetComponent().text = "---"; + TimeText.text = TimeSpan.FromSeconds(rowerType.value).ToPFString(); + KMText.text = "---"; } } - mid.Find("W/Value").GetComponent().text = "---"; - rmydata.Find("W/Value").GetComponent().text = "---"; - bottom.Find("500/Value").GetComponent().text = "---"; - bottom.Find("MS/Value").GetComponent().text = "---"; + WText.text = "---"; + rmyWText.text = "---"; + FiveText.text = "---"; + MSText.text = "---"; //bottom.Find("MS/AvgValue").GetComponent().text = "---"; bottom.Find("BPM/Value").GetComponent().text = "---"; - bottom.Find("Expected/Value").GetComponent().text = "---"; + ExpectedText.text = "---"; bottom.Find("Expected/Title").GetComponent().text = bottom.Find("Expected/Title").GetComponent().text.Replace("EST",App.GetLocalString("EST")); - mid.Find("AvgForce/Value").GetComponent().text = "---"; - rmydata.Find("AvgForce/Value").GetComponent().text = "---"; - mid.Find("PeakForce/Value").GetComponent().text = "---"; - rmydata.Find("PeakForce/Value").GetComponent().text = "---"; + AvgForceText.text = "---"; + rmyAvgForceText.text = "---"; + PeakForceText.text = "---"; + rmyPeakForceText.text = "---"; records.Clear();// = new List(); values.Clear(); //= new List(); @@ -689,6 +715,23 @@ public class RowerHomeScript : PFUIPanel }; int tempx = 0; #endif + private Text WText { get; set; } + private Text rmyWText { get; set; } + private Text FiveText { get; set; } + private Text MSText { get; set; } + private Text ExpectedText { get; set; } + private Text KMText { get; set; } + private Text BPMText { get; set; } + private Text TimeText { get; set; } + + private Text TimesText { get; set; } + private Text Caloriestext { get; set; } + private Text rmyCaloriestext { get; set; } + private Text AvgForceText { get; set; } + private Text rmyAvgForceText { get; set; } + private Text PeakForceText { get; set; } + private Text rmyPeakForceText { get; set; } + void TimerTicks() { #if UNITY_EDITOR @@ -705,7 +748,7 @@ public class RowerHomeScript : PFUIPanel if (RowerData == null) return; #endif var heartRate = HeartRate ?? 0; - bottom.Find("BPM/Value").GetComponent().text = heartRate.ToString(); + BPMText.text = heartRate.ToString(); //断线重连继续 var distance = (int)RowerData.TotalDistance + historyDistance; var energy = RowerData.TotalEnergy + historyEnergy; @@ -747,17 +790,17 @@ public class RowerHomeScript : PFUIPanel return; } TimeSpan.FromSeconds(remainTime).ToPFString(); - bottom.Find("Time/Value").GetComponent().text = TimeSpan.FromSeconds(remainTime).ToPFString(); + TimeText.text = TimeSpan.FromSeconds(remainTime).ToPFString(); } else { - bottom.Find("Time/Value").GetComponent().text = TimeSpan.FromSeconds(++seconds).ToPFString(); + TimeText.text = TimeSpan.FromSeconds(++seconds).ToPFString(); } - mid.Find("W/Value").GetComponent().text = "---"; - rmydata.Find("W/Value").GetComponent().text = "---"; - bottom.Find("500/Value").GetComponent().text = "---"; - bottom.Find("MS/Value").GetComponent().text = "---"; - bottom.Find("Expected/Value").GetComponent().text = "---"; + WText.text = "---"; + rmyWText.text = "---"; + FiveText.text = "---"; + MSText.text = "---"; + ExpectedText.text = "---"; records.Add($"{strokeCount},{RowerData.ElapsedTime},{distance},0,0,0,{RowerData.ResistanceLevel},{heartRate},{energy},{RowerData.AveragePower},{truelyTime}"); tmpdata = new TempRowerCalc() { strokeCount = strokeCount, pace = 0, power = 0, rate = 0, heartRate = heartRate, distance = distance, energy = energy }; values.Add(tmpdata); @@ -770,17 +813,17 @@ public class RowerHomeScript : PFUIPanel var pace = RowerData.InstantaneousPace; - mid.Find("W/Value").GetComponent().text = power.ToString(); - rmydata.Find("W/Value").GetComponent().text = power.ToString(); - bottom.Find("500/Value").GetComponent().text = TimeSpan.FromSeconds(pace).ToPFString(); - bottom.Find("MS/Value").GetComponent().text = rate.ToString(); - left.Find("Times/Value").GetComponent().text = strokeCount.ToString(); - left.Find("Calories/Value").GetComponent().text = energy.ToString(); - rmydata.Find("Calories/Value").GetComponent().text = energy.ToString(); - mid.Find("AvgForce/Value").GetComponent().text = RowerData.AverageDriveForce.ToString("#0"); - rmydata.Find("AvgForce/Value").GetComponent().text = RowerData.AverageDriveForce.ToString("#0"); - mid.Find("PeakForce/Value").GetComponent().text = RowerData.PeakDriveForce.ToString("#0"); - rmydata.Find("PeakForce/Value").GetComponent().text = RowerData.PeakDriveForce.ToString("#0"); + WText.text = power.ToString(); + rmyWText.text = power.ToString(); + FiveText.text = TimeSpan.FromSeconds(pace).ToPFString(); + MSText.text = rate.ToString(); + TimesText.text = strokeCount.ToString(); + Caloriestext.text = energy.ToString(); + rmyCaloriestext.text = energy.ToString(); + AvgForceText.text = RowerData.AverageDriveForce.ToString("#0"); + rmyAvgForceText.text = RowerData.AverageDriveForce.ToString("#0"); + PeakForceText.text = RowerData.PeakDriveForce.ToString("#0"); + rmyPeakForceText.text = RowerData.PeakDriveForce.ToString("#0"); if (pace != 0) { if (rowerType.type == 1) @@ -788,14 +831,14 @@ public class RowerHomeScript : PFUIPanel //设置里程时 显示预估时间 当前时间+剩余里程/配速(转换) var remainDistance = rowerType.value - totalDistance; var time = values.Count + (remainDistance / (500f / pace)); - bottom.Find("Expected/Value").GetComponent().text = TimeSpan.FromSeconds(time).ToPFString(); + ExpectedText.text = TimeSpan.FromSeconds(time).ToPFString(); } else if (rowerType.type == 2) { var remainTime = rowerType.value - values.Count; var dis = totalDistance + (remainTime * (500f / pace)); //设置时间时 显示预估里程 当前里程+剩余时间*配速 - bottom.Find("Expected/Value").GetComponent().text = $"{dis.ToString("#0")}"; + ExpectedText.text = $"{dis:#0}"; } else { @@ -809,13 +852,13 @@ public class RowerHomeScript : PFUIPanel } var dis = totalDistance - dif + (remainTime * (500f / pace)); //设置时间时 显示预估里程 当前里程+剩余时间*配速 - bottom.Find("Expected/Value").GetComponent().text = $"{dis.ToString("#0")}"; + ExpectedText.text = $"{dis:#0}"; } } if (rowerType.type == 2) { var remainTime = rowerType.value - (++seconds); - bottom.Find("Time/Value").GetComponent().text = TimeSpan.FromSeconds(remainTime).ToPFString(); + TimeText.text = TimeSpan.FromSeconds(remainTime).ToPFString(); if (remainTime == 0) { records.Add($"{strokeCount},{RowerData.ElapsedTime},{distance},{RowerData.InstantaneousPower},{RowerData.InstantaneousPace},{RowerData.StrokeRate},{RowerData.ResistanceLevel},{heartRate},{energy},{RowerData.AveragePower},{truelyTime}"); @@ -828,14 +871,14 @@ public class RowerHomeScript : PFUIPanel } else { - bottom.Find("Time/Value").GetComponent().text = TimeSpan.FromSeconds(++seconds).ToPFString(); + TimeText.text = TimeSpan.FromSeconds(++seconds).ToPFString(); } if (rowerType.type == 1) { var remainDistance = rowerType.value - totalDistance; if (remainDistance <= 0) { - bottom.Find("KM/Value").GetComponent().text = "0"; + KMText.text = "0"; records.Add($"{strokeCount},{RowerData.ElapsedTime},{distance},{RowerData.InstantaneousPower},{RowerData.InstantaneousPace},{RowerData.StrokeRate},{RowerData.ResistanceLevel},{heartRate},{energy},{RowerData.AveragePower},{truelyTime}"); tmpdata = new TempRowerCalc() { strokeCount = strokeCount, pace = pace, power = power, rate = rate, heartRate = heartRate, distance = distance, energy = energy }; values.Add(tmpdata); @@ -843,11 +886,11 @@ public class RowerHomeScript : PFUIPanel HandleSaveDirect(); return; } - bottom.Find("KM/Value").GetComponent().text = remainDistance.ToString(); + KMText.text = remainDistance.ToString(); } else { - bottom.Find("KM/Value").GetComponent().text = totalDistance.ToString(); + KMText.text = totalDistance.ToString(); } records.Add($"{strokeCount},{RowerData.ElapsedTime},{distance},{RowerData.InstantaneousPower},{RowerData.InstantaneousPace},{RowerData.StrokeRate},{RowerData.ResistanceLevel},{heartRate},{energy},{RowerData.AveragePower},{truelyTime}"); @@ -907,14 +950,12 @@ public class RowerHomeScript : PFUIPanel } } } + Helper.DelectDir(dir); UIManager.CloseConfirm(); }, 2, () => { - if (files.Length > 0) - { - File.Delete(files[0]); - } + Helper.DelectDir(dir); UIManager.CloseConfirm(); }); } @@ -943,9 +984,11 @@ public class RowerHomeScript : PFUIPanel Debug.LogError(e); } } + + private RowerMultiModeScript rowerMultiModeScript { get; set; } void SendDataToRace(TempRowerCalc tmpdata) { - GetComponent().HandleTimeTick(new RowerChartModel + rowerMultiModeScript.HandleTimeTick(new RowerChartModel { Pace = tmpdata.pace, Power = tmpdata.power, @@ -963,8 +1006,15 @@ public class RowerHomeScript : PFUIPanel PaintPullCurve(ftms.PullValue); } bool isPlay = false; + float preTime = 0f; + float curTime = 0f; void PaintPullCurve(ushort y) { + if (curTime-preTime < 0.1f) + { + return; + } + preTime = curTime; Debug.Log("收到拉力" + y + ","+ DateTime.Now.Ticks); //#if !UNITY_EDITOR // if (!openTimer) @@ -1044,13 +1094,21 @@ public class RowerHomeScript : PFUIPanel } void SetChartData(List v1, List v2) { - mid.Find("GraphChart").GetComponent().SetData(v1,v2); - transform.Find("Rower/Modes/Scroll/M2/MyData/GraphChart").GetComponent().SetData(v1); + if (M1.localPosition.x == 0) + { + rowerGraphChartFeed.SetData(v1, v2); + } + else + { + graphChartFeed.SetData(v1); + } + } float staticTimer = 1f,shortTimer = 0.25f; int ticks { get; set; } = 0; void Update() { + curTime += Time.deltaTime; #if UNITY_EDITOR if (openTimer || true) #else @@ -1102,7 +1160,7 @@ public class RowerHomeScript : PFUIPanel if (rowerType.type == 1 && totalDistance >=rowerType.value && !createTime.HasValue) { openTimer = false; - bottom.Find("KM/Value").GetComponent().text = "0"; + KMText.text = "0"; records.Add($"{strokeCount},{RowerData.ElapsedTime},{distance},{power},{pace},{rate},{RowerData.ResistanceLevel},{heartRate},{energy},{RowerData.AveragePower},{truelyTime}"); var tmpdata = new TempRowerCalc() { strokeCount = strokeCount, pace = pace, power = power, rate = rate, heartRate = heartRate, distance = distance, energy = energy }; values.Add(tmpdata); @@ -1114,10 +1172,10 @@ public class RowerHomeScript : PFUIPanel { return; } - mid.Find("W/Value").GetComponent().text = power.ToString(); - rmydata.Find("W/Value").GetComponent().text = power.ToString(); - bottom.Find("500/Value").GetComponent().text = TimeSpan.FromSeconds(pace).ToPFString(); - bottom.Find("MS/Value").GetComponent().text = rate.ToString(); + WText.text = power.ToString(); + rmyWText.text = power.ToString(); + FiveText.text = TimeSpan.FromSeconds(pace).ToPFString(); + MSText.text = rate.ToString(); } void HandleStatic() diff --git a/Assets/Scripts/UI/Prefab/Rower/RowerGraphChartFeed.cs b/Assets/Scripts/UI/Prefab/Rower/RowerGraphChartFeed.cs index 6498c1da..790cabbb 100644 --- a/Assets/Scripts/UI/Prefab/Rower/RowerGraphChartFeed.cs +++ b/Assets/Scripts/UI/Prefab/Rower/RowerGraphChartFeed.cs @@ -44,6 +44,8 @@ public class RowerGraphChartFeed : MonoBehaviour //graph.DataSource.StartBatch(); graph.DataSource.ClearCategory("Player 1"); graph.DataSource.ClearCategory("Player 2"); + graph.ClearCache(); + for (int i = 0; i < list.Count; i++) { var item = list[i];