Aimbot-PPO/Aimbot-PPO-MultiScene/Assets/XCharts/Examples/Example00_CheatSheet.cs

322 lines
12 KiB
C#
Raw Permalink Normal View History

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using XCharts.Runtime;
namespace XCharts.Example
{
[DisallowMultipleComponent]
public class Example00_CheatSheet : MonoBehaviour
{
private LineChart chart;
private float speed = 100f;
void Awake()
{
LoopDemo();
}
private void OnEnable()
{
LoopDemo();
}
void LoopDemo()
{
StopAllCoroutines();
StartCoroutine(CheatSheet());
}
IEnumerator CheatSheet()
{
StartCoroutine(InitChart());
StartCoroutine(ComponentTitle());
yield return new WaitForSeconds(2);
StartCoroutine(ComponentAxis());
yield return new WaitForSeconds(2);
StartCoroutine(ComponentGrid());
yield return new WaitForSeconds(2);
StartCoroutine(ComponentSerie());
yield return new WaitForSeconds(4);
StartCoroutine(ComponentLegend());
yield return new WaitForSeconds(4);
StartCoroutine(ComponentTheme());
yield return new WaitForSeconds(4);
StartCoroutine(ComponentDataZoom());
yield return new WaitForSeconds(5);
StartCoroutine(ComponentVisualMap());
yield return new WaitForSeconds(3);
LoopDemo();
}
IEnumerator InitChart()
{
chart = gameObject.GetComponent<LineChart>();
if (chart == null) gameObject.AddComponent<LineChart>();
chart.GetChartComponent<Title>().show = true;
chart.GetChartComponent<Title>().text = "术语解析-组件";
var grid = chart.GetOrAddChartComponent<GridCoord>();
grid.bottom = 30;
grid.right = 30;
grid.left = 50;
grid.top = 80;
chart.RemoveChartComponent<VisualMap>();
chart.RemoveData();
chart.AddSerie<Bar>("Bar");
chart.AddSerie<Line>("Line");
for (int i = 0; i < 8; i++)
{
chart.AddXAxisData("x" + (i + 1));
chart.AddData(0, Random.Range(10, 100));
chart.AddData(1, Random.Range(30, 100));
}
yield return null;
}
IEnumerator ComponentTitle()
{
chart.GetChartComponent<Title>().text = "术语解析 - 组件";
chart.GetChartComponent<Title>().subText = "Title 标题:可指定主标题和子标题";
chart.GetChartComponent<XAxis>().show = true;
chart.GetChartComponent<YAxis>().show = true;
chart.GetChartComponent<Legend>().show = false;
chart.series[0].show = false;
chart.series[1].show = false;
for (int i = 0; i < 4; i++)
{
chart.GetChartComponent<Title>().show = !chart.GetChartComponent<Title>().show;
chart.RefreshChart();
yield return new WaitForSeconds(0.2f);
}
chart.GetChartComponent<Title>().show = true;
chart.RefreshChart();
}
IEnumerator ComponentAxis()
{
chart.GetChartComponent<Title>().subText = "Axis 坐标轴配置X和Y轴的轴线、刻度、标签等样式外观配置";
chart.series[0].show = false;
chart.series[1].show = false;
var xAxis = chart.GetChartComponent<XAxis>();
var yAxis = chart.GetChartComponent<YAxis>();
for (int i = 0; i < 4; i++)
{
xAxis.show = !xAxis.show;
yAxis.show = !yAxis.show;
chart.RefreshChart();
yield return new WaitForSeconds(0.2f);
}
xAxis.show = true;
yAxis.show = true;
chart.RefreshChart();
yield return new WaitForSeconds(1f);
}
IEnumerator ComponentGrid()
{
chart.GetChartComponent<Title>().subText = "Grid 网格:调整坐标系边距和颜色等";
var grid = chart.GetChartComponent<GridCoord>();
for (int i = 0; i < 4; i++)
{
grid.backgroundColor = i % 2 == 0 ? Color.clear : Color.grey;
chart.RefreshChart();
yield return new WaitForSeconds(0.2f);
}
grid.backgroundColor = Color.clear;
chart.RefreshChart();
yield return new WaitForSeconds(1f);
}
IEnumerator ComponentSerie()
{
chart.GetChartComponent<Title>().subText = "Serie 系列:调整坐标系边距和颜色等";
chart.series[0].show = true;
chart.series[1].show = true;
chart.AnimationReset();
chart.RefreshChart();
yield return new WaitForSeconds(1.2f);
for (int i = 0; i < 4; i++)
{
chart.series[0].show = !chart.series[0].show;
chart.series[1].show = !chart.series[1].show;
chart.RefreshChart();
yield return new WaitForSeconds(0.2f);
}
chart.series[0].show = true;
chart.series[1].show = true;
chart.RefreshChart();
yield return new WaitForSeconds(1f);
}
IEnumerator ComponentLegend()
{
chart.GetChartComponent<Title>().subText = "Legend 图例:展示不同系列的名字和颜色,可控制系列显示等";
var legend = chart.GetChartComponent<Legend>();
legend.show = true;
var grid = chart.GetChartComponent<GridCoord>();
grid.top = 80;
legend.location.top = 50;
chart.RefreshChart();
yield return new WaitForSeconds(1f);
for (int i = 0; i < 4; i++)
{
legend.show = !legend.show;
chart.RefreshChart();
yield return new WaitForSeconds(0.2f);
}
legend.show = true;
chart.RefreshChart();
yield return new WaitForSeconds(1f);
chart.ClickLegendButton(0, "Line", false);
yield return new WaitForSeconds(0.2f);
chart.ClickLegendButton(0, "Line", true);
yield return new WaitForSeconds(0.5f);
chart.ClickLegendButton(1, "Bar", false);
yield return new WaitForSeconds(0.2f);
chart.ClickLegendButton(1, "Bar", true);
yield return new WaitForSeconds(0.5f);
}
IEnumerator ComponentTheme()
{
chart.GetChartComponent<Title>().subText = "Theme 主题:可从全局上配置图表的颜色、字体等效果,支持默认主题切换";
yield return new WaitForSeconds(1f);
chart.GetChartComponent<Title>().subText = "Theme 主题Light主题";
chart.UpdateTheme(ThemeType.Light);
yield return new WaitForSeconds(1f);
chart.GetChartComponent<Title>().subText = "Theme 主题Dark主题";
chart.UpdateTheme(ThemeType.Dark);
yield return new WaitForSeconds(1f);
chart.GetChartComponent<Title>().subText = "Theme 主题Default主题";
chart.UpdateTheme(ThemeType.Default);
yield return new WaitForSeconds(1f);
}
IEnumerator ComponentDataZoom()
{
chart.GetChartComponent<Title>().subText = "DataZoom 区域缩放:可通过拖、拽、缩小、放大来观察细节数据";
var grid = chart.GetChartComponent<GridCoord>();
grid.bottom = 70;
var dataZoom = chart.GetOrAddChartComponent<DataZoom>();
dataZoom.enable = true;
dataZoom.supportInside = true;
dataZoom.supportSlider = true;
dataZoom.start = 0;
dataZoom.end = 100;
chart.RefreshChart();
for (int i = 0; i < 4; i++)
{
dataZoom.supportSlider = !dataZoom.supportSlider;
chart.RefreshChart();
yield return new WaitForSeconds(0.2f);
}
dataZoom.supportSlider = true;
chart.RefreshChart();
yield return new WaitForSeconds(1f);
while (dataZoom.start < 40)
{
dataZoom.start += speed * Time.deltaTime * 0.8f;
chart.RefreshDataZoom();
chart.RefreshChart();
yield return null;
}
while (dataZoom.end > 60)
{
dataZoom.end -= speed * Time.deltaTime * 0.8f;
chart.RefreshDataZoom();
chart.RefreshChart();
yield return null;
}
while (dataZoom.start > 0)
{
dataZoom.start -= speed * Time.deltaTime * 0.8f;
dataZoom.end -= speed * Time.deltaTime * 0.8f;
chart.RefreshDataZoom();
chart.RefreshChart();
yield return null;
}
while (dataZoom.end < 100)
{
dataZoom.start += speed * Time.deltaTime * 0.8f;
dataZoom.end += speed * Time.deltaTime * 0.8f;
chart.RefreshDataZoom();
chart.RefreshChart();
yield return null;
}
while (dataZoom.start > 0 || dataZoom.end < 100)
{
dataZoom.start -= speed * Time.deltaTime * 0.8f;
dataZoom.end += speed * Time.deltaTime * 0.8f;
chart.RefreshDataZoom();
chart.RefreshChart();
yield return null;
}
}
IEnumerator ComponentVisualMap()
{
chart.GetChartComponent<Title>().subText = "VisualMap 视觉映射:可从全局上配置图表的颜色、字体等效果,支持默认主题切换";
var visualMap = chart.GetOrAddChartComponent<VisualMap>();
visualMap.show = true;
visualMap.showUI = true;
visualMap.orient = Orient.Vertical;
visualMap.calculable = true;
visualMap.min = 0;
visualMap.max = 100;
visualMap.range[0] = 0;
visualMap.range[1] = 100;
var colors = new List<string>
{
"#313695",
"#4575b4",
"#74add1",
"#abd9e9",
"#e0f3f8",
"#ffffbf",
"#fee090",
"#fdae61",
"#f46d43",
"#d73027",
"#a50026"
};
visualMap.AddColors(colors);
var grid = chart.GetChartComponent<GridCoord>();
grid.left = 80;
grid.bottom = 100;
chart.RefreshChart();
yield return new WaitForSeconds(1f);
while (visualMap.rangeMin < 40)
{
visualMap.rangeMin += speed * Time.deltaTime;
chart.RefreshChart();
yield return null;
}
while (visualMap.rangeMax > 60)
{
visualMap.rangeMax -= speed * Time.deltaTime;
chart.RefreshChart();
yield return null;
}
while (visualMap.rangeMin > 0 || visualMap.rangeMax < 100)
{
visualMap.rangeMin -= speed * Time.deltaTime;
visualMap.rangeMax += speed * Time.deltaTime;
chart.RefreshChart();
yield return null;
}
}
}
}