graph优化

# Conflicts:
#	Assets/Scripts/UI/Prefab/Panel/RowerHomeScript.cs
This commit is contained in:
lishuo 2022-06-06 18:54:04 +08:00 committed by CaiYanPeng
parent bfc56dded5
commit b236e939f4
5 changed files with 90 additions and 27 deletions

View File

@ -7,7 +7,7 @@ using UnityEngine;
namespace ChartAndGraph
{
[Serializable ]
[Serializable]
public struct DoubleVector2
{
public double x, y;

View File

@ -89,6 +89,8 @@ public class RowerHomeScript : PFUIPanel
}
GameObject btnStart;
Transform left, bottom, mid,rmydata;
Image leftImage;
Image rightImage;
float timer = 1.0f;
List<DoubleVector2> pullList, historyPullList;
public Dictionary<object, Sprite> spriteDict,spriteDict2;
@ -617,8 +619,10 @@ public class RowerHomeScript : PFUIPanel
btnStart.tag = "Start";
btnStart.GetComponent<Image>().sprite = spriteDict["Start"];
left.Find("Rower").GetComponent<Image>().sprite = spriteDict[0];
left.Find("LeftImage/Value").GetComponent<Image>().fillAmount = 0;
left.Find("RightImage/Value").GetComponent<Image>().fillAmount = 0;
leftImage = left.Find("LeftImage/Value").GetComponent<Image>();
rightImage = left.Find("RightImage/Value").GetComponent<Image>();
leftImage.fillAmount = 0;
rightImage.fillAmount = 0;
TimesText.text = "---";
Caloriestext.text = "---";
rmyCaloriestext.text = "---";
@ -996,6 +1000,7 @@ public class RowerHomeScript : PFUIPanel
{
Helper.DelectDir(dir);
UIManager.CloseConfirm();
Init();
});
}
else
@ -1051,6 +1056,7 @@ public class RowerHomeScript : PFUIPanel
{
Helper.DelectDir(dir);
UIManager.CloseConfirm();
Init();
});
}
}
@ -1106,15 +1112,10 @@ public class RowerHomeScript : PFUIPanel
PaintPullCurve(ftms.PullValue);
}
bool isPlay = false;
float preTime = 0f;
float curTime = 0f;
int pointCount = 0;
void PaintPullCurve(ushort y)
{
//if (y!=0 && curTime-preTime < 0.1f)
//{
// return;
//}
preTime = curTime;
Debug.Log("收到拉力" + y + ","+ DateTime.Now.Ticks);
//#if !UNITY_EDITOR
// if (!openTimer)
@ -1131,30 +1132,43 @@ public class RowerHomeScript : PFUIPanel
//#endif
//if (y > 1200) y = 1200;
//拉力条
var rate = ((float)y) * 2 / 120;
if (rate > 1) rate = 1f;
left.Find("LeftImage/Value").GetComponent<Image>().fillAmount = rate;
left.Find("RightImage/Value").GetComponent<Image>().fillAmount = rate;
leftImage.fillAmount = rate;
rightImage.fillAmount = rate;
//动画
//left.Find("Rower").GetComponent<Image>().sprite = spriteDict[y / 67];
//曲线
if (y == 0)
{
if (pullList.Count == 0)
//if (pullList.Count == 0)
if(pointCount == 0)
{
isPlay = true;
x = 0.1;
pointCount++;
pullList.Add(new DoubleVector2(x, y));
SetChartData(pullList, historyPullList);
//SetChartData(pullList, historyPullList);
ClearChart();
SetChartData(x, y);
}
else if (pullList.Count > 1)
//else if (pullList.Count > 1)
else if(pointCount > 1)
{
x += 0.1;
pointCount++;
pullList.Add(new DoubleVector2(x, y));
SetChartData(pullList, historyPullList);
SetChartData(x, y);
//SetChartData(pullList, historyPullList);
historyPullList = pullList.Select(x => x).ToList();
pullList.Clear();
pointCount = 0;
//ClearChart();
x = 0.1;
SetChartData(x, y);
pointCount = 1;
isPlay = true;
pullList.Add(new DoubleVector2(x, y));
}
@ -1163,21 +1177,25 @@ public class RowerHomeScript : PFUIPanel
//只有0并且两秒没拉曲线消失
if (stopSeconds == 1)
{
SetChartData(new List<DoubleVector2>(), new List<DoubleVector2>());
ClearChart();
//SetChartData(new List<DoubleVector2>(), new List<DoubleVector2>());
}
}
}
else
{
x += 0.1;
pointCount++;
pullList.Add(new DoubleVector2(x, y));
if (pullList.Count > 5 && isPlay)
//if (pullList.Count > 5 && isPlay)
if (pointCount > 5 && isPlay)
{
Debug.Log("开始动画");
isPlay = false;
//left.Find("Rower").GetComponent<RowerAnimation>().StartAnimation();
}
SetChartData(pullList, historyPullList);
//SetChartData(pullList, historyPullList);
SetChartData(x, y);
}
//Debug.Log($"{x},{y}");
//transform.Find("Mid/GraphChart").GetComponent<RowerGraphChartFeed>().SetData(pullList);
@ -1192,8 +1210,28 @@ public class RowerHomeScript : PFUIPanel
// x += 0.1f;
//}
}
void ClearChart()
{
rowerGraphChartFeed.ClearChart();
graphChartFeed.ClearChart();
}
double preX, preY;
void SetChartData(double x, double y)
{
if (M1.localPosition.x == 0)
{
rowerGraphChartFeed.SetCurrentPoint(x, y);
rowerGraphChartFeed.SetHistoryData(historyPullList);
}
else
{
graphChartFeed.SetCurrentPoint(x, y);
}
}
void SetChartData(List<DoubleVector2> v1, List<DoubleVector2> v2)
{
//graph.DataSource.AddPointToCategoryRealtime("Player 2", item.x, item.y);
if (M1.localPosition.x == 0)
{
rowerGraphChartFeed.SetData(v1, v2);
@ -1208,7 +1246,6 @@ public class RowerHomeScript : PFUIPanel
int ticks { get; set; } = 0;
void Update()
{
curTime += Time.deltaTime;
#if UNITY_EDITOR
if (openTimer || true)
#else

View File

@ -7,10 +7,12 @@ using System.Collections.Generic;
public class RowerGraphChartFeed : MonoBehaviour
{
GraphChartBase graph { get; set; }
GraphData dataSource { get; set; }
void Start ()
{
graph = GetComponent<GraphChartBase>();
dataSource = graph.DataSource;
//GraphChartBase graph = GetComponent<GraphChartBase>();
//if (graph != null)
//{
@ -34,6 +36,31 @@ public class RowerGraphChartFeed : MonoBehaviour
//}
// StartCoroutine(ClearAll());
}
public void SetPrePoint(double x, double y)
{
dataSource?.AddPointToCategoryRealtime("Player 1", x, y);
}
public void SetCurrentPoint(double x,double y)
{
dataSource?.AddPointToCategoryRealtime("Player 2", x, y);
}
public void ClearChart(string cat = "Player 2")
{
dataSource?.ClearCategory(cat);
}
public void SetHistoryData(List<DoubleVector2> list2 = null)
{
if (list2 != null)
{
dataSource?.ClearCategory("Player 1");
for (int i = 0; i < list2.Count; i++)
{
var item = list2[i];
graph.DataSource.AddPointToCategoryRealtime("Player 1", item.x, item.y);
}
}
}
public void SetData(List<DoubleVector2> list,List<DoubleVector2> list2 = null)
{
@ -42,10 +69,9 @@ public class RowerGraphChartFeed : MonoBehaviour
graph.Scrollable = false;
//graph.HorizontalValueToStringMap[0.0] = "Zero"; // example of how to set custom axis strings
//graph.DataSource.StartBatch();
graph.DataSource.ClearCategory("Player 1");
graph.DataSource.ClearCategory("Player 2");
graph.ClearCache();
//graph.DataSource.ClearCategory("Player 1");
//graph.DataSource.ClearCategory("Player 2");
//graph.ClearCache();
for (int i = 0; i < list.Count; i++)
{
var item = list[i];

View File

@ -13,7 +13,7 @@
</packages>
<files />
<settings>
<setting name="androidAbis" value="arm64-v8a,armeabi-v7a" />
<setting name="androidAbis" value="armeabi-v7a" />
<setting name="bundleId" value="com.ZhiXingPai.PowerFunUnity" />
<setting name="explodeAars" value="True" />
<setting name="gradleBuildEnabled" value="True" />

View File

@ -256,7 +256,7 @@ PlayerSettings:
clonedFromGUID: c0afd0d1d80e3634a9dac47e8a0426ea
templatePackageId: com.unity.template.3d@4.2.8
templateDefaultScene: Assets/Scenes/SampleScene.unity
AndroidTargetArchitectures: 3
AndroidTargetArchitectures: 1
AndroidSplashScreenScale: 0
androidSplashScreen: {fileID: 0}
AndroidKeystoreName: '{inproject}: Assets/Plugins/Android/powerfun.keystore'
@ -868,7 +868,7 @@ PlayerSettings:
platformArchitecture:
iPhone: 1
scriptingBackend:
Android: 1
Android: 0
Standalone: 0
il2cppCompilerConfiguration:
Standalone: 0