mirror of
https://github.com/XCharts-Team/XCharts.git
synced 2026-05-27 11:40:13 +00:00
Compare commits
155 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
759b3f22f9 | ||
|
|
ec9277c0d8 | ||
|
|
a4d91b3c4e | ||
|
|
00996b92d0 | ||
|
|
8ba251d5be | ||
|
|
773cfe6c7d | ||
|
|
e01c55c3ca | ||
|
|
e58fb2b31f | ||
|
|
9e6632897b | ||
|
|
13222ddbc6 | ||
|
|
e13049774a | ||
|
|
39278499a4 | ||
|
|
912e0b55eb | ||
|
|
55a3533230 | ||
|
|
88428b8faa | ||
|
|
7a351a7e7d | ||
|
|
89635a442f | ||
|
|
656407723a | ||
|
|
fcaab01e22 | ||
|
|
78ebc47359 | ||
|
|
ed76f2b652 | ||
|
|
8792f7b458 | ||
|
|
567dc49830 | ||
|
|
b8440c9eae | ||
|
|
fe225796a7 | ||
|
|
c7c90f857b | ||
|
|
1ff54a187d | ||
|
|
319a205b07 | ||
|
|
57dd2d704f | ||
|
|
fcae6d3bce | ||
|
|
c5f9d59a5f | ||
|
|
8966b55ab7 | ||
|
|
652c73e453 | ||
|
|
f139d4df1f | ||
|
|
8437590b00 | ||
|
|
c1ec8be133 | ||
|
|
7c7f21fd27 | ||
|
|
8465f0cb06 | ||
|
|
b44f3042f8 | ||
|
|
b043a87d3a | ||
|
|
f111505110 | ||
|
|
a047a89447 | ||
|
|
8c74e8f3a5 | ||
|
|
b7a59247f9 | ||
|
|
a2edc9acdb | ||
|
|
f29b52f544 | ||
|
|
466585d8ef | ||
|
|
26e28f8b80 | ||
|
|
af6a65f4fb | ||
|
|
948a0f1a02 | ||
|
|
90d250eb77 | ||
|
|
4aba7e49c8 | ||
|
|
616df1c2f5 | ||
|
|
6f12757fa2 | ||
|
|
d6ab1cc88b | ||
|
|
99a737a78c | ||
|
|
6a36830115 | ||
|
|
36b3a31733 | ||
|
|
bbab8cb30d | ||
|
|
e2f2ea76fb | ||
|
|
afa44c4257 | ||
|
|
2e8e55a85f | ||
|
|
1c465f244c | ||
|
|
f160e0daa6 | ||
|
|
5d0c05e743 | ||
|
|
a9e64c88ea | ||
|
|
dd64ab74f1 | ||
|
|
3f9ec0fc19 | ||
|
|
bcfdabb0ba | ||
|
|
9aafbe5d22 | ||
|
|
fcd63fc525 | ||
|
|
4a2a395922 | ||
|
|
0a39463bac | ||
|
|
c148c8ccd4 | ||
|
|
450e091095 | ||
|
|
ce91d4045f | ||
|
|
9e6e01c718 | ||
|
|
e180a84c64 | ||
|
|
3e51467346 | ||
|
|
f5b8468b62 | ||
|
|
4266b07a5f | ||
|
|
5bf8ecc001 | ||
|
|
2b877973aa | ||
|
|
ba346f994a | ||
|
|
ffe096a612 | ||
|
|
fae92e1a5e | ||
|
|
ddf73c7f21 | ||
|
|
35cababb2c | ||
|
|
3d5ee319e5 | ||
|
|
0f80a75fe7 | ||
|
|
c282d15889 | ||
|
|
22484eb8df | ||
|
|
516d35a8c8 | ||
|
|
09f7fe4fa6 | ||
|
|
8d2183a333 | ||
|
|
40ba70f6c0 | ||
|
|
62d767ae20 | ||
|
|
a52fbd023e | ||
|
|
a59723ecef | ||
|
|
0a60f76c87 | ||
|
|
9cfcdd5d10 | ||
|
|
bc4fd066ee | ||
|
|
cce0724842 | ||
|
|
d8148ef9ef | ||
|
|
48c867b1ef | ||
|
|
32967df5c9 | ||
|
|
ec3f9e40bf | ||
|
|
7881f092e6 | ||
|
|
4adda8da9d | ||
|
|
0b9abefda9 | ||
|
|
7757e396cb | ||
|
|
1a3a1d2b03 | ||
|
|
5532640c5d | ||
|
|
afe1663926 | ||
|
|
572d7b39f1 | ||
|
|
73bacfaceb | ||
|
|
71b7691e90 | ||
|
|
fd4ef2c879 | ||
|
|
342ce41d58 | ||
|
|
8748206a5e | ||
|
|
06a23d0940 | ||
|
|
cf0648b1f6 | ||
|
|
e4d3ac82b6 | ||
|
|
bdc1a43710 | ||
|
|
5f9028b33e | ||
|
|
dbac61384f | ||
|
|
29306f3398 | ||
|
|
25880c8db7 | ||
|
|
09402a163c | ||
|
|
4afb670f04 | ||
|
|
68704aab2e | ||
|
|
8538ef3faf | ||
|
|
adea68df65 | ||
|
|
869087aa0e | ||
|
|
a08c0c535c | ||
|
|
46399b5bd7 | ||
|
|
c9c43c2a9e | ||
|
|
d145fc716e | ||
|
|
f19dcbb017 | ||
|
|
938aca4699 | ||
|
|
0acf03a2ed | ||
|
|
2c01a8d130 | ||
|
|
2dfabb998e | ||
|
|
614d340835 | ||
|
|
8ea961d2ca | ||
|
|
f881a0cedd | ||
|
|
96e2255960 | ||
|
|
1ad3bc8c9f | ||
|
|
0743882076 | ||
|
|
333620d87f | ||
|
|
b7021cb072 | ||
|
|
64614cffb0 | ||
|
|
ba925a809d | ||
|
|
300ed8ca15 | ||
|
|
1412d8c365 |
7
.gitignore
vendored
7
.gitignore
vendored
@@ -1,13 +1,20 @@
|
||||
/.vs
|
||||
/.vscode
|
||||
.vs
|
||||
/XCharts-ios
|
||||
/Library
|
||||
/Temp
|
||||
/Logs
|
||||
/UnityPackageManager
|
||||
/Assets/Res
|
||||
/Assets/Res.meta
|
||||
/Assets/Package
|
||||
/Assets/Package.meta
|
||||
|
||||
/Assets/XCharts/Demo/demo_test.unity
|
||||
/Assets/XCharts/Demo/demo_test.unity.meta
|
||||
/Assets/XCharts/Demo/empty.unity
|
||||
/Assets/XCharts/Demo/empty.unity.meta
|
||||
|
||||
*.sln
|
||||
*.csproj
|
||||
|
||||
121
Assets/XCharts/CHANGELOG.md
Normal file
121
Assets/XCharts/CHANGELOG.md
Normal file
@@ -0,0 +1,121 @@
|
||||
|
||||
# 更新日志
|
||||
|
||||
* (2019.10.31) 修复`prefab`预设制作报错的问题
|
||||
* (2019.10.31) 增加访问主题组件API:`BaseChart.themeInfo`
|
||||
* (2019.10.26) 发布`v1.0.1`版本
|
||||
* (2019.10.26) 修复版本检查功能在非运行时异常的问题
|
||||
* (2019.10.26) 增加科学计数法显示数值的支持(查阅`forceENotation`参数)
|
||||
* (2019.10.26) 增加`Axis`类目轴数据为空时的默认显示支持
|
||||
* (2019.10.26) 增加`Axis`数值轴的最大最小值可设置为小数的支持,优化极小数图表的表现效果
|
||||
* (2019.10.25) 发布`v1.0.0`版本
|
||||
* (2019.10.23) 增加版本检测功能:`Component -> XCharts -> Check For Update`
|
||||
* (2019.10.22) 增加`Package Manager`安装的支持
|
||||
* (2019.10.20) 增加`Demo`首页`BarChart`的代码动态控制效果
|
||||
* (2019.10.18) 增加`Serie`的`barType`参数,可配置`斑马柱状图`
|
||||
* (2019.10.18) 增加`Serie`的`barPercentStack`参数,可配置`百分比堆叠柱状图`
|
||||
* (2019.10.16) 增加`Demo`首页`LineChart`的代码动态控制效果
|
||||
* (2019.10.15) 移除`Pie`组件,相关参数放到`Settings`中配置
|
||||
* (2019.10.15) 增加`Demo`首页,展示代码动态控制效果
|
||||
* (2019.10.14) 增加`RadarChart`、`ScatterChart`和`HeatmapChart`的起始动画效果
|
||||
* (2019.10.14) 增加`SerieData`的`radius`自定义数据项的半径
|
||||
* (2019.10.14) 增加`HeatmapChart`热力图
|
||||
* (2019.10.14) 增加`VisualMap`视觉映射组件
|
||||
* (2019.10.14) 增加`ItemStyle`数据项样式组件
|
||||
* (2019.10.14) 增加`Emphasis`高亮样式组件
|
||||
* (2019.10.10) 增加`Settings`全局参数配置组件,开放更多参数可配置
|
||||
* (2019.10.09) 增加`AreaStyle`的高亮相关参数配置鼠标悬浮时高亮之前区域
|
||||
* (2019.10.09) 优化`DataZoom`组件,增加双指缩放
|
||||
* (2019.10.05) 增加`SerieLabel`的`LineType`给饼图配置不同类型的视觉引导线
|
||||
* (2019.10.02) 增加`ScatterChart`同时对`Scatter`和`Line`的支持,实现折线图和散点图的组合图
|
||||
* (2019.10.01) 重构代码,废弃`Series.series`接口,用`Series.list`代替
|
||||
* (2019.10.01) 增加`customDrawCallback`自定义绘制回调
|
||||
* (2019.10.01) 增加`SmoothDash`平滑虚线的支持
|
||||
* (2019.09.30) 增加`Serie`采样类型`sampleType`的相关配置
|
||||
* (2019.09.29) 增加`SerieSymbol`关于显示间隔的相关配置
|
||||
* (2019.09.29) 重构代码:
|
||||
* `BaseChart`的`sampleDist`删除,`Serie`增加`lineSampleDist`
|
||||
* `BaseChart`的`minShowDataNumber`删除,`Serie`增加`minShow`
|
||||
* `BaseChart`的`maxShowDataNumber`删除,`Serie`增加`maxShow`
|
||||
* `BaseChart`的`maxCacheDataNumber`删除,`Serie`增加`maxCache`
|
||||
* `BaseChart`的`AddSerie()`接口参数调整
|
||||
* `BaseChart`的`UpdateData()`接口参数调整
|
||||
* `Axis`增加`maxCache`
|
||||
* (2019.09.28) 增加`LineChart`和`BarChart`同时对`Line`、`Bar`类型`Serie`的支持,实现折线图和柱状图的组合图
|
||||
* (2019.09.27) 增加`Axis`的`splitNumber`设置为`0`时表示绘制所有类目数据
|
||||
* (2019.09.27) 增加`SampleDist`采样距离的配置,对过密的曲线开启采样,优化绘制效率
|
||||
* (2019.09.27) 增加`XCharts问答`、`XChartsAPI接口`、`XCharts配置项手册`等文档
|
||||
* (2019.09.26) 增加`AnimationReset()`重置初始化动画接口
|
||||
* (2019.09.26) 优化`LineChart`的密集数据的曲线效果
|
||||
* (2019.09.25) 优化`SerieData`的自定义图标不与`SerieLabel`关联,可单独控制是否显示
|
||||
* (2019.09.24) 增加`SerieData`的自定义图标相关配置支持
|
||||
* (2019.09.23) 增加`Formatter`配置`Axis`的`AxisLabel`的格式化输出
|
||||
* (2019.09.23) 增加`Tooltip`的`FontSize`、`FontStyle`配置字体大小和样式
|
||||
* (2019.09.23) 增加`Formatter`配置`SerieLabel`、`Legend`、`Tooltip`的格式化输出
|
||||
* (2019.09.19) 增加`LineArrow`配置带箭头曲线
|
||||
* (2019.09.19) 增加`Tooltip`的`FixedWidth`、`FixedHeight`、`MinWidth`、`MinHeight`设置支持
|
||||
* (2019.09.18) 增加单条堆叠柱状图
|
||||
* (2019.09.18) 增加虚线`Dash`、点线`Dot`、点划线`DashDot`、双点划线`DashDotDot`等类型的折线图支持
|
||||
* (2019.09.17) 增加`AnimationEnabel()`启用或取消起始动画接口
|
||||
* (2019.09.17) 增加`Axis`的`Interval`强制设置坐标轴分割间隔
|
||||
* (2019.09.16) 去掉`Serie`中的旧版本数据兼容,不再支持`xData`和`yData`
|
||||
* (2019.09.06) 增加`Animation`在重新初始化数据时自启动功能
|
||||
* (2019.09.06) 增加`SerieLabel`的`Border`边框相关配置支持
|
||||
* (2019.09.05) 增加`PieChart`的`Animation`初始化动画配置支持
|
||||
* (2019.09.03) 增加`BarChart`的`Animation`初始化动画配置支持
|
||||
* (2019.09.02) 增加`LineChart`的`Animation`初始化动画配置支持
|
||||
* (2019.08.22) 增加`AxisName`的`Offset`偏移配置支持
|
||||
* (2019.08.22) 增加`AxisLine`的`Width`配置支持
|
||||
* (2019.08.20) 增加`SerieLabel`的背景宽高、文字边距、文字旋转的配置
|
||||
* (2019.08.20) 增加`BarChart`的`Label`配置支持
|
||||
* (2019.08.15) 增加`LineChart`的`Label`配置
|
||||
* (2019.08.15) 重构`BarChart`,移除`Bar`组件,相关参数统一放到`Serie`中配置
|
||||
* (2019.08.15) 重构`LineChart`,移除`Line`组件,相关参数统一放到`Serie`中配置
|
||||
* (2019.08.15) 发布`v0.8.3`版本
|
||||
* (2019.08.14) 修复`PieChart`的`Label`无法自动更新的问题
|
||||
* (2019.08.13) 修复`UpdateData`接口无法更新数据的问题
|
||||
* (2019.08.07) 增加`SerieSymbol`的`Color`、`Opacity`配置
|
||||
* (2019.08.07) 发布`v0.8.2`版本
|
||||
* (2019.08.07) 修复区域平滑折线图显示异常的问题
|
||||
* (2019.08.06) 修复`serie`系列数超过调色盘颜色数时获取的颜色异常的问题
|
||||
* (2019.08.06) 修复当`Axis`的`minMaxType`为`Custom`时`max`设置为`100`不生效的问题
|
||||
* (2019.08.04) 发布`v0.8.1`版本
|
||||
* (2019.08.04) 修复从Inspector中修改数据不生效的问题
|
||||
* (2019.08.04) 发布`v0.8.0`版本
|
||||
* (2019.08.04) 优化`RadarChart`雷达图,增加多雷达图支持
|
||||
* (2019.08.01) 增加代码API注释文档,整理代码
|
||||
* (2019.07.29) 增加`Radius`、`Area`两种南丁格尔玫瑰图展示类型
|
||||
* (2019.07.29) 增加`SerieLabel`配置饼图标签,支持`Center`、`Inside`、`Outside`等显示位置
|
||||
* (2019.07.28) 增加`PieChart`多饼图支持
|
||||
* (2019.07.23) 优化`Theme`主题的自定义,切换主题时自定义配置不受影响
|
||||
* (2019.07.22) 增加`EffectScatter`类型的散点图
|
||||
* (2019.07.21) 增加`ScatterChart`散点图
|
||||
* (2019.07.21) 增加`SerieData`支持多维数据配置
|
||||
* (2019.07.20) 增加`Symbol`配置`Serie`标志图形的显示
|
||||
* (2019.07.19) 增加用代码添加动态正弦曲线的示例`Demo11_AddSinCurve`
|
||||
* (2019.07.19) 优化`Legend`的显示和控制
|
||||
* (2019.07.18) 优化抗锯齿,曲线更平滑
|
||||
* (2019.07.18) 增加`Tooltip`指示器类型,优化显示控制
|
||||
* (2019.07.15) 增加`Size`设置图表尺寸
|
||||
* (2019.07.14) 增加`二维数据`支持,XY轴都可以设置为数值轴
|
||||
* (2019.07.13) 增加`双坐标轴`支持,代码改动较大
|
||||
* (2019.07.10) 发布`v0.5.0`版本
|
||||
* (2019.07.09) 增加`AxisLine`配置坐标轴轴线和箭头
|
||||
* (2019.07.03) 增加`AxisLabel`配置坐标轴`刻度标签`
|
||||
* (2019.07.02) 增加`selected`等相关参数配置`PieChart`的选中效果
|
||||
* (2019.06.30) 增加`SplitArea`配置坐标轴`分割区域`
|
||||
* (2019.06.29) 增加`AxisName`配置坐标轴`名称`
|
||||
* (2019.06.20) 增加`AreaAlpha`控制`RadarChart`的`Area`透明度
|
||||
* (2019.06.13) 增加`DataZoom`实现`区域缩放`
|
||||
* (2019.06.01) 增加`stepType`实现`LineChart`的`阶梯线图`
|
||||
* (2019.05.29) 增加`InSameBar`实现`BarChart`的`非堆叠同柱`
|
||||
* (2019.05.29) 增加`crossLabel`控制`Tooltip`的`十字准星指示器`
|
||||
* (2019.05.24) 增加`堆叠区域图`
|
||||
* (2019.05.16) 增加`AxisMinMaxType`控制坐标轴最大最小刻度
|
||||
* (2019.05.15) 完善数据接口
|
||||
* (2019.05.14) 增加X轴`AxisType.Value`模式支持
|
||||
* (2019.05.13) 增加负数数值轴支持
|
||||
* (2019.05.11) 增加自定义`Editor`编辑
|
||||
* (2019.03.21) 增加`Tooltip`
|
||||
* (2018.11.01) 增加`Default`、`Light`、`Dark`三种默认主题
|
||||
* (2018.09.05) 发布`v0.1.0`版本
|
||||
7
Assets/XCharts/CHANGELOG.md.meta
Normal file
7
Assets/XCharts/CHANGELOG.md.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e66d91d4c396b46bf87034c47ca3b43d
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cc28a4ebefb884f6ab7132e3910b7461
|
||||
guid: 05b7d15b7a92f4c1eb56dbf47522bf6c
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
|
||||
@@ -1,4 +1,11 @@
|
||||
using UnityEditor;
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace XCharts
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 97c0f1cf754c54fd1913ec5b4129c6e5
|
||||
guid: 2fbbaed3e670f478c844c1bdfc73d433
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
|
||||
@@ -1,5 +1,12 @@
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
|
||||
using UnityEditor;
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: bc37c9f35cd6b4f0f936526a63fb19a5
|
||||
guid: 90c1787bea03849c8b6d19be625b7e17
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
|
||||
17
Assets/XCharts/Demo/Editor/XCharts.Editor.Demo.asmdef
Normal file
17
Assets/XCharts/Demo/Editor/XCharts.Editor.Demo.asmdef
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"name": "XCharts.Editor.Demo",
|
||||
"references": [
|
||||
"XCharts.Demo.Runtime",
|
||||
"XCharts.Runtime"
|
||||
],
|
||||
"optionalUnityReferences": [],
|
||||
"includePlatforms": [
|
||||
"Editor"
|
||||
],
|
||||
"excludePlatforms": [],
|
||||
"allowUnsafeCode": false,
|
||||
"overrideReferences": false,
|
||||
"precompiledReferences": [],
|
||||
"autoReferenced": true,
|
||||
"defineConstraints": []
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2d3606aaaf73f468984f4615b496f408
|
||||
AssemblyDefinitionImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,10 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3aced18ddab0f41408ea7b63aeaf8ea4
|
||||
timeCreated: 1555731741
|
||||
licenseType: Free
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 100100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,8 +1,6 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f441980293a132b4fa06409caf7932ee
|
||||
guid: f67670c9ee0e64262950aaf07562454e
|
||||
folderAsset: yes
|
||||
timeCreated: 1555731551
|
||||
licenseType: Free
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
197
Assets/XCharts/Demo/Runtime/Demo.cs
Normal file
197
Assets/XCharts/Demo/Runtime/Demo.cs
Normal file
@@ -0,0 +1,197 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.EventSystems;
|
||||
using UnityEngine.UI;
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
[System.Serializable]
|
||||
public class ChartModule
|
||||
{
|
||||
[SerializeField] private string m_Name;
|
||||
[SerializeField] private string m_Title;
|
||||
[SerializeField] private bool m_Selected;
|
||||
[SerializeField] private GameObject m_Panel;
|
||||
|
||||
public string name { get { return m_Name; } set { m_Name = value; } }
|
||||
public string title { get { return m_Title; } set { m_Title = value; } }
|
||||
public bool select { get { return m_Selected; } set { m_Selected = value; } }
|
||||
public GameObject panel { get { return m_Panel; } set { m_Panel = value; } }
|
||||
public Button button { get; set; }
|
||||
}
|
||||
|
||||
[DisallowMultipleComponent]
|
||||
[ExecuteInEditMode]
|
||||
public class Demo : MonoBehaviour
|
||||
{
|
||||
[SerializeField] private Color m_ButtonNormalColor;
|
||||
[SerializeField] private Color m_ButtonSelectedColor;
|
||||
[SerializeField] private Color m_ButtonHighlightColor;
|
||||
[SerializeField] private List<ChartModule> m_ChartModule;
|
||||
|
||||
private GameObject m_BtnClone;
|
||||
private Theme m_SelectedTheme;
|
||||
private int m_LastSelectedModuleIndex;
|
||||
|
||||
private Button m_DefaultThemeButton;
|
||||
private Button m_LightThemeButton;
|
||||
private Button m_DarkThemeButton;
|
||||
|
||||
private Text m_Title;
|
||||
|
||||
private ScrollRect m_ScrollRect;
|
||||
private Mask m_Mark;
|
||||
|
||||
void Awake()
|
||||
{
|
||||
m_SelectedTheme = Theme.Default;
|
||||
|
||||
m_ButtonNormalColor = ChartHelper.GetColor("#293C55FF");
|
||||
m_ButtonSelectedColor = ChartHelper.GetColor("#e43c59ff");
|
||||
m_ButtonHighlightColor = ChartHelper.GetColor("#0E151FFF");
|
||||
|
||||
m_ScrollRect = transform.Find("chart_detail").GetComponent<ScrollRect>();
|
||||
m_Mark = transform.Find("chart_detail/Viewport").GetComponent<Mask>();
|
||||
m_Mark.enabled = true;
|
||||
m_Title = transform.Find("chart_title/Text").GetComponent<Text>();
|
||||
|
||||
InitThemeButton();
|
||||
InitModuleButton();
|
||||
}
|
||||
|
||||
void Update()
|
||||
{
|
||||
#if UNITY_EDITOR
|
||||
if (m_ChartModule.Count <= 0) return;
|
||||
int selectedModuleIndex = -1;
|
||||
for (int i = 0; i < m_ChartModule.Count; i++)
|
||||
{
|
||||
if (selectedModuleIndex >= 0 && i > selectedModuleIndex)
|
||||
{
|
||||
m_ChartModule[i].select = false;
|
||||
}
|
||||
else if (m_ChartModule[i].select)
|
||||
{
|
||||
selectedModuleIndex = i;
|
||||
}
|
||||
}
|
||||
if (selectedModuleIndex < 0) selectedModuleIndex = 0;
|
||||
if (selectedModuleIndex != m_LastSelectedModuleIndex)
|
||||
{
|
||||
InitModuleButton();
|
||||
}
|
||||
if (!Application.isPlaying) m_Mark.enabled = false;
|
||||
#endif
|
||||
}
|
||||
|
||||
void InitModuleButton()
|
||||
{
|
||||
var btnPanel = transform.Find("chart_list");
|
||||
m_BtnClone = transform.Find("btn_clone").gameObject;
|
||||
m_BtnClone.SetActive(false);
|
||||
ChartHelper.DestroyAllChildren(btnPanel);
|
||||
foreach (var module in m_ChartModule)
|
||||
{
|
||||
var btnName = "btn_" + module.name;
|
||||
GameObject btn;
|
||||
if (btnPanel.Find(btnName))
|
||||
{
|
||||
btn = btnPanel.Find(btnName).gameObject;
|
||||
btn.SetActive(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
btn = GameObject.Instantiate(m_BtnClone);
|
||||
btn.SetActive(true);
|
||||
btn.name = btnName;
|
||||
btn.transform.SetParent(btnPanel);
|
||||
btn.transform.localPosition = Vector3.zero;
|
||||
}
|
||||
btn.transform.localScale = Vector3.one;
|
||||
module.button = btn.GetComponent<Button>();
|
||||
module.button.GetComponentInChildren<Text>().text = module.name;
|
||||
|
||||
ChartHelper.AddEventListener(btn.gameObject, EventTriggerType.PointerDown, (data) =>
|
||||
{
|
||||
ClickModule(module);
|
||||
});
|
||||
}
|
||||
|
||||
for (int i = 0; i < m_ChartModule.Count; i++)
|
||||
{
|
||||
var module = m_ChartModule[i];
|
||||
if (module.select)
|
||||
{
|
||||
ClickModule(module);
|
||||
m_LastSelectedModuleIndex = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ClickModule(ChartModule selectedModule)
|
||||
{
|
||||
foreach (var module in m_ChartModule)
|
||||
{
|
||||
if (selectedModule != module)
|
||||
{
|
||||
var block = module.button.colors;
|
||||
block.highlightedColor = m_ButtonHighlightColor;
|
||||
block.normalColor = m_ButtonNormalColor;
|
||||
module.button.colors = block;
|
||||
module.panel.SetActive(false);
|
||||
module.select = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
var block = module.button.colors;
|
||||
block.highlightedColor = m_ButtonSelectedColor;
|
||||
block.normalColor = m_ButtonSelectedColor;
|
||||
module.button.colors = block;
|
||||
module.panel.SetActive(true);
|
||||
module.select = true;
|
||||
}
|
||||
}
|
||||
m_ScrollRect.content = selectedModule.panel.GetComponent<RectTransform>();
|
||||
m_Title.text = string.IsNullOrEmpty(selectedModule.title) ?
|
||||
selectedModule.name : selectedModule.title;
|
||||
}
|
||||
|
||||
void InitThemeButton()
|
||||
{
|
||||
m_DefaultThemeButton = transform.Find("chart_theme/btn_default").GetComponent<Button>();
|
||||
m_LightThemeButton = transform.Find("chart_theme/btn_light").GetComponent<Button>();
|
||||
m_DarkThemeButton = transform.Find("chart_theme/btn_dark").GetComponent<Button>();
|
||||
|
||||
m_DefaultThemeButton.transform.Find("selected").gameObject.SetActive(m_SelectedTheme == Theme.Default);
|
||||
m_LightThemeButton.transform.Find("selected").gameObject.SetActive(m_SelectedTheme == Theme.Light);
|
||||
m_DarkThemeButton.transform.Find("selected").gameObject.SetActive(m_SelectedTheme == Theme.Dark);
|
||||
|
||||
m_DefaultThemeButton.onClick.AddListener(delegate () { SelecteTheme(Theme.Default); });
|
||||
m_LightThemeButton.onClick.AddListener(delegate () { SelecteTheme(Theme.Light); });
|
||||
m_DarkThemeButton.onClick.AddListener(delegate () { SelecteTheme(Theme.Dark); });
|
||||
|
||||
//SelecteTheme(Theme.Default);
|
||||
}
|
||||
|
||||
void SelecteTheme(Theme theme)
|
||||
{
|
||||
m_SelectedTheme = theme;
|
||||
m_DefaultThemeButton.transform.Find("selected").gameObject.SetActive(m_SelectedTheme == Theme.Default);
|
||||
m_LightThemeButton.transform.Find("selected").gameObject.SetActive(m_SelectedTheme == Theme.Light);
|
||||
m_DarkThemeButton.transform.Find("selected").gameObject.SetActive(m_SelectedTheme == Theme.Dark);
|
||||
var charts = transform.GetComponentsInChildren<BaseChart>();
|
||||
foreach (var chart in charts)
|
||||
{
|
||||
chart.UpdateTheme(theme);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 75496d488607d421fbf2c190f80ed0a7
|
||||
guid: 85bc0178fe453471fb2706bf81a09235
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
310
Assets/XCharts/Demo/Runtime/Demo00_CheatSheet.cs
Normal file
310
Assets/XCharts/Demo/Runtime/Demo00_CheatSheet.cs
Normal file
@@ -0,0 +1,310 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
[DisallowMultipleComponent]
|
||||
public class Demo00_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.title.show = true;
|
||||
chart.title.text = "术语解析-组件";
|
||||
chart.grid.bottom = 30;
|
||||
chart.grid.right = 30;
|
||||
chart.grid.left = 50;
|
||||
chart.grid.top = 80;
|
||||
|
||||
chart.dataZoom.enable = false;
|
||||
chart.visualMap.enable = false;
|
||||
|
||||
chart.RemoveData();
|
||||
|
||||
chart.AddSerie(SerieType.Bar, "Bar");
|
||||
chart.AddSerie(SerieType.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.title.text = "术语解析 - 组件";
|
||||
chart.title.subText = "Title 标题:可指定主标题和子标题";
|
||||
chart.xAxis0.show = true;
|
||||
chart.yAxis0.show = true;
|
||||
chart.series.list[0].show = false;
|
||||
chart.series.list[1].show = false;
|
||||
chart.legend.show = false;
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
chart.title.show = !chart.title.show;
|
||||
chart.RefreshChart();
|
||||
yield return new WaitForSeconds(0.2f);
|
||||
}
|
||||
chart.title.show = true;
|
||||
chart.RefreshChart();
|
||||
}
|
||||
|
||||
IEnumerator ComponentAxis()
|
||||
{
|
||||
chart.title.subText = "Axis 坐标轴:配置X和Y轴的轴线、刻度、标签等样式外观配置";
|
||||
chart.series.list[0].show = false;
|
||||
chart.series.list[1].show = false;
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
chart.xAxis0.show = !chart.xAxis0.show;
|
||||
chart.yAxis0.show = !chart.yAxis0.show;
|
||||
chart.RefreshChart();
|
||||
yield return new WaitForSeconds(0.2f);
|
||||
}
|
||||
chart.xAxis0.show = true;
|
||||
chart.yAxis0.show = true;
|
||||
chart.RefreshChart();
|
||||
yield return new WaitForSeconds(1f);
|
||||
}
|
||||
|
||||
IEnumerator ComponentGrid()
|
||||
{
|
||||
chart.title.subText = "Grid 网格:调整坐标系边距和颜色等";
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
chart.grid.backgroundColor = i % 2 == 0 ? Color.clear : Color.grey;
|
||||
chart.RefreshChart();
|
||||
yield return new WaitForSeconds(0.2f);
|
||||
}
|
||||
chart.grid.backgroundColor = Color.clear;
|
||||
chart.RefreshChart();
|
||||
yield return new WaitForSeconds(1f);
|
||||
}
|
||||
|
||||
IEnumerator ComponentSerie()
|
||||
{
|
||||
chart.title.subText = "Serie 系列:调整坐标系边距和颜色等";
|
||||
chart.series.list[0].show = true;
|
||||
chart.series.list[1].show = true;
|
||||
chart.AnimationReset();
|
||||
chart.RefreshChart();
|
||||
yield return new WaitForSeconds(1.2f);
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
chart.series.list[0].show = !chart.series.list[0].show;
|
||||
chart.series.list[1].show = !chart.series.list[1].show;
|
||||
chart.RefreshChart();
|
||||
yield return new WaitForSeconds(0.2f);
|
||||
}
|
||||
chart.series.list[0].show = true;
|
||||
chart.series.list[1].show = true;
|
||||
chart.RefreshChart();
|
||||
yield return new WaitForSeconds(1f);
|
||||
}
|
||||
|
||||
IEnumerator ComponentLegend()
|
||||
{
|
||||
chart.title.subText = "Legend 图例:展示不同系列的名字和颜色,可控制系列显示等";
|
||||
chart.legend.show = true;
|
||||
chart.grid.top = 80;
|
||||
chart.legend.location.top = 50;
|
||||
chart.RefreshChart();
|
||||
yield return new WaitForSeconds(1f);
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
chart.legend.show = !chart.legend.show;
|
||||
chart.RefreshChart();
|
||||
yield return new WaitForSeconds(0.2f);
|
||||
}
|
||||
chart.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.title.subText = "Theme 主题:可从全局上配置图表的颜色、字体等效果,支持默认主题切换";
|
||||
yield return new WaitForSeconds(1f);
|
||||
chart.title.subText = "Theme 主题:Light主题";
|
||||
chart.UpdateTheme(Theme.Light);
|
||||
yield return new WaitForSeconds(1f);
|
||||
chart.title.subText = "Theme 主题:Dark主题";
|
||||
chart.UpdateTheme(Theme.Dark);
|
||||
yield return new WaitForSeconds(1f);
|
||||
chart.title.subText = "Theme 主题:Default主题";
|
||||
chart.UpdateTheme(Theme.Default);
|
||||
yield return new WaitForSeconds(1f);
|
||||
}
|
||||
|
||||
IEnumerator ComponentDataZoom()
|
||||
{
|
||||
chart.title.subText = "DataZoom 区域缩放:可通过拖、拽、缩小、放大来观察细节数据";
|
||||
chart.grid.bottom = 70;
|
||||
|
||||
chart.dataZoom.enable = true;
|
||||
chart.dataZoom.supportInside = true;
|
||||
chart.dataZoom.supportSlider = true;
|
||||
chart.dataZoom.height = 30;
|
||||
chart.dataZoom.start = 0;
|
||||
chart.dataZoom.end = 100;
|
||||
|
||||
chart.RefreshChart();
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
chart.dataZoom.supportSlider = !chart.dataZoom.supportSlider;
|
||||
chart.RefreshChart();
|
||||
yield return new WaitForSeconds(0.2f);
|
||||
}
|
||||
chart.dataZoom.supportSlider = true;
|
||||
chart.RefreshChart();
|
||||
yield return new WaitForSeconds(1f);
|
||||
while (chart.dataZoom.start < 40)
|
||||
{
|
||||
chart.dataZoom.start += speed * Time.deltaTime * 0.8f;
|
||||
chart.RefreshDataZoom();
|
||||
chart.RefreshChart();
|
||||
yield return null;
|
||||
}
|
||||
while (chart.dataZoom.end > 60)
|
||||
{
|
||||
chart.dataZoom.end -= speed * Time.deltaTime * 0.8f;
|
||||
chart.RefreshDataZoom();
|
||||
chart.RefreshChart();
|
||||
yield return null;
|
||||
}
|
||||
while (chart.dataZoom.start > 0)
|
||||
{
|
||||
chart.dataZoom.start -= speed * Time.deltaTime * 0.8f;
|
||||
chart.dataZoom.end -= speed * Time.deltaTime * 0.8f;
|
||||
chart.RefreshDataZoom();
|
||||
chart.RefreshChart();
|
||||
yield return null;
|
||||
}
|
||||
while (chart.dataZoom.end < 100)
|
||||
{
|
||||
chart.dataZoom.start += speed * Time.deltaTime * 0.8f;
|
||||
chart.dataZoom.end += speed * Time.deltaTime * 0.8f;
|
||||
chart.RefreshDataZoom();
|
||||
chart.RefreshChart();
|
||||
yield return null;
|
||||
}
|
||||
while (chart.dataZoom.start > 0 || chart.dataZoom.end < 100)
|
||||
{
|
||||
chart.dataZoom.start -= speed * Time.deltaTime * 0.8f;
|
||||
chart.dataZoom.end += speed * Time.deltaTime * 0.8f;
|
||||
chart.RefreshDataZoom();
|
||||
chart.RefreshChart();
|
||||
yield return null;
|
||||
}
|
||||
}
|
||||
|
||||
IEnumerator ComponentVisualMap()
|
||||
{
|
||||
chart.title.subText = "VisualMap 视觉映射:可从全局上配置图表的颜色、字体等效果,支持默认主题切换";
|
||||
|
||||
chart.visualMap.enable = true;
|
||||
chart.visualMap.show = true;
|
||||
chart.visualMap.orient = Orient.Vertical;
|
||||
chart.visualMap.calculable = true;
|
||||
chart.visualMap.min = 0;
|
||||
chart.visualMap.max = 100;
|
||||
chart.visualMap.range[0] = 0;
|
||||
chart.visualMap.range[1] = 100;
|
||||
|
||||
var colors = new List<string>{"#313695", "#4575b4", "#74add1", "#abd9e9", "#e0f3f8", "#ffffbf",
|
||||
"#fee090", "#fdae61", "#f46d43", "#d73027", "#a50026"};
|
||||
chart.visualMap.inRange.Clear();
|
||||
foreach (var str in colors)
|
||||
{
|
||||
chart.visualMap.inRange.Add(ThemeInfo.GetColor(str));
|
||||
}
|
||||
chart.grid.left = 80;
|
||||
chart.grid.bottom = 100;
|
||||
chart.RefreshChart();
|
||||
|
||||
yield return new WaitForSeconds(1f);
|
||||
while (chart.visualMap.rangeMin < 40)
|
||||
{
|
||||
chart.visualMap.rangeMin += speed * Time.deltaTime;
|
||||
chart.RefreshChart();
|
||||
yield return null;
|
||||
}
|
||||
while (chart.visualMap.rangeMax > 60)
|
||||
{
|
||||
chart.visualMap.rangeMax -= speed * Time.deltaTime;
|
||||
chart.RefreshChart();
|
||||
yield return null;
|
||||
}
|
||||
while (chart.visualMap.rangeMin > 0 || chart.visualMap.rangeMax < 100)
|
||||
{
|
||||
chart.visualMap.rangeMin -= speed * Time.deltaTime;
|
||||
chart.visualMap.rangeMax += speed * Time.deltaTime;
|
||||
chart.RefreshChart();
|
||||
yield return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4f4f93f97ce4c4274a4153986a3e5752
|
||||
guid: 060e74df53e174634b42ea5f3c852e94
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
270
Assets/XCharts/Demo/Runtime/Demo10_LineChart.cs
Normal file
270
Assets/XCharts/Demo/Runtime/Demo10_LineChart.cs
Normal file
@@ -0,0 +1,270 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
|
||||
using System.Collections;
|
||||
using UnityEngine;
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
[DisallowMultipleComponent]
|
||||
public class Demo10_LineChart : MonoBehaviour
|
||||
{
|
||||
private LineChart chart;
|
||||
private Serie serie;
|
||||
private int m_DataNum = 8;
|
||||
|
||||
void Awake()
|
||||
{
|
||||
LoopDemo();
|
||||
}
|
||||
|
||||
private void OnEnable()
|
||||
{
|
||||
LoopDemo();
|
||||
}
|
||||
|
||||
void LoopDemo()
|
||||
{
|
||||
StopAllCoroutines();
|
||||
StartCoroutine(PieDemo());
|
||||
}
|
||||
|
||||
IEnumerator PieDemo()
|
||||
{
|
||||
StartCoroutine(AddSimpleLine());
|
||||
yield return new WaitForSeconds(2);
|
||||
StartCoroutine(ChangeLineType());
|
||||
yield return new WaitForSeconds(8);
|
||||
StartCoroutine(LineAreaStyleSettings());
|
||||
yield return new WaitForSeconds(5);
|
||||
StartCoroutine(LineArrowSettings());
|
||||
yield return new WaitForSeconds(2);
|
||||
StartCoroutine(LineSymbolSettings());
|
||||
yield return new WaitForSeconds(7);
|
||||
StartCoroutine(LineLabelSettings());
|
||||
yield return new WaitForSeconds(3);
|
||||
StartCoroutine(LineMutilSerie());
|
||||
yield return new WaitForSeconds(5);
|
||||
LoopDemo();
|
||||
}
|
||||
|
||||
IEnumerator AddSimpleLine()
|
||||
{
|
||||
chart = gameObject.GetComponent<LineChart>();
|
||||
if (chart == null) chart = gameObject.AddComponent<LineChart>();
|
||||
chart.title.text = "LineChart - 折线图";
|
||||
chart.title.subText = "普通折线图";
|
||||
|
||||
chart.yAxis0.minMaxType = Axis.AxisMinMaxType.Custom;
|
||||
chart.yAxis0.min = 0;
|
||||
chart.yAxis0.max = 100;
|
||||
|
||||
chart.RemoveData();
|
||||
serie = chart.AddSerie(SerieType.Line, "Line");
|
||||
|
||||
for (int i = 0; i < m_DataNum; i++)
|
||||
{
|
||||
chart.AddXAxisData("x" + (i + 1));
|
||||
chart.AddData(0, UnityEngine.Random.Range(30, 90));
|
||||
}
|
||||
yield return new WaitForSeconds(1);
|
||||
}
|
||||
|
||||
IEnumerator ChangeLineType()
|
||||
{
|
||||
chart.title.subText = "LineTyle - 曲线图";
|
||||
serie.lineType = LineType.Smooth;
|
||||
chart.RefreshChart();
|
||||
yield return new WaitForSeconds(1);
|
||||
|
||||
chart.title.subText = "LineTyle - 阶梯线图";
|
||||
serie.lineType = LineType.StepStart;
|
||||
chart.RefreshChart();
|
||||
yield return new WaitForSeconds(1);
|
||||
|
||||
serie.lineType = LineType.StepMiddle;
|
||||
chart.RefreshChart();
|
||||
yield return new WaitForSeconds(1);
|
||||
|
||||
serie.lineType = LineType.StepEnd;
|
||||
chart.RefreshChart();
|
||||
yield return new WaitForSeconds(1);
|
||||
|
||||
chart.title.subText = "LineTyle - 虚线";
|
||||
serie.lineType = LineType.Dash;
|
||||
chart.RefreshChart();
|
||||
yield return new WaitForSeconds(1);
|
||||
|
||||
chart.title.subText = "LineTyle - 点线";
|
||||
serie.lineType = LineType.Dot;
|
||||
chart.RefreshChart();
|
||||
yield return new WaitForSeconds(1);
|
||||
|
||||
chart.title.subText = "LineTyle - 点划线";
|
||||
serie.lineType = LineType.DashDot;
|
||||
chart.RefreshChart();
|
||||
yield return new WaitForSeconds(1);
|
||||
|
||||
chart.title.subText = "LineTyle - 双点划线";
|
||||
serie.lineType = LineType.DashDotDot;
|
||||
chart.RefreshChart();
|
||||
|
||||
serie.lineType = LineType.Normal;
|
||||
chart.RefreshChart();
|
||||
}
|
||||
|
||||
IEnumerator LineAreaStyleSettings()
|
||||
{
|
||||
chart.title.subText = "AreaStyle 面积图";
|
||||
|
||||
serie.areaStyle.show = true;
|
||||
chart.RefreshChart();
|
||||
yield return new WaitForSeconds(1f);
|
||||
|
||||
chart.title.subText = "AreaStyle 面积图";
|
||||
serie.lineType = LineType.Smooth;
|
||||
serie.areaStyle.show = true;
|
||||
chart.RefreshChart();
|
||||
yield return new WaitForSeconds(1f);
|
||||
|
||||
chart.title.subText = "AreaStyle 面积图 - 调整透明度";
|
||||
while (serie.areaStyle.opacity > 0.4)
|
||||
{
|
||||
serie.areaStyle.opacity -= 0.6f * Time.deltaTime;
|
||||
chart.RefreshChart();
|
||||
yield return null;
|
||||
}
|
||||
yield return new WaitForSeconds(1);
|
||||
|
||||
chart.title.subText = "AreaStyle 面积图 - 渐变";
|
||||
serie.areaStyle.toColor = Color.white;
|
||||
chart.RefreshChart();
|
||||
yield return new WaitForSeconds(1);
|
||||
}
|
||||
|
||||
IEnumerator LineArrowSettings()
|
||||
{
|
||||
chart.title.subText = "LineArrow 头部箭头";
|
||||
serie.lineArrow.show = true;
|
||||
serie.lineArrow.position = LineArrow.Position.Start;
|
||||
chart.RefreshChart();
|
||||
yield return new WaitForSeconds(1);
|
||||
|
||||
chart.title.subText = "LineArrow 尾部箭头";
|
||||
serie.lineArrow.position = LineArrow.Position.End;
|
||||
chart.RefreshChart();
|
||||
yield return new WaitForSeconds(1);
|
||||
serie.lineArrow.show = false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// SerieSymbol 相关设置
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
IEnumerator LineSymbolSettings()
|
||||
{
|
||||
chart.title.subText = "SerieSymbol 图形标记";
|
||||
while (serie.symbol.size < 5)
|
||||
{
|
||||
serie.symbol.size += 2.5f * Time.deltaTime;
|
||||
chart.RefreshChart();
|
||||
yield return null;
|
||||
}
|
||||
chart.title.subText = "SerieSymbol 图形标记 - 空心圆";
|
||||
yield return new WaitForSeconds(1);
|
||||
|
||||
chart.title.subText = "SerieSymbol 图形标记 - 实心圆";
|
||||
serie.symbol.type = SerieSymbolType.Circle;
|
||||
chart.RefreshChart();
|
||||
yield return new WaitForSeconds(1);
|
||||
|
||||
chart.title.subText = "SerieSymbol 图形标记 - 三角形";
|
||||
serie.symbol.type = SerieSymbolType.Triangle;
|
||||
chart.RefreshChart();
|
||||
yield return new WaitForSeconds(1);
|
||||
|
||||
chart.title.subText = "SerieSymbol 图形标记 - 正方形";
|
||||
serie.symbol.type = SerieSymbolType.Rect;
|
||||
chart.RefreshChart();
|
||||
yield return new WaitForSeconds(1);
|
||||
|
||||
chart.title.subText = "SerieSymbol 图形标记 - 菱形";
|
||||
serie.symbol.type = SerieSymbolType.Diamond;
|
||||
chart.RefreshChart();
|
||||
yield return new WaitForSeconds(1);
|
||||
|
||||
chart.title.subText = "SerieSymbol 图形标记";
|
||||
serie.symbol.type = SerieSymbolType.EmptyCircle;
|
||||
chart.RefreshChart();
|
||||
yield return new WaitForSeconds(1);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// SerieLabel相关配置
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
IEnumerator LineLabelSettings()
|
||||
{
|
||||
chart.title.subText = "SerieLabel 文本标签";
|
||||
serie.label.show = true;
|
||||
serie.label.border = false;
|
||||
chart.RefreshChart();
|
||||
while (serie.label.offset[1] < 20)
|
||||
{
|
||||
serie.label.offset = new Vector3(serie.label.offset.x, serie.label.offset.y + 20f * Time.deltaTime);
|
||||
chart.RefreshChart();
|
||||
yield return null;
|
||||
}
|
||||
yield return new WaitForSeconds(1);
|
||||
|
||||
serie.label.border = true;
|
||||
chart.RefreshChart();
|
||||
yield return new WaitForSeconds(1);
|
||||
|
||||
serie.label.color = Color.white;
|
||||
serie.label.backgroundColor = Color.grey;
|
||||
chart.RefreshLabel();
|
||||
chart.RefreshChart();
|
||||
yield return new WaitForSeconds(1);
|
||||
|
||||
serie.label.show = false;
|
||||
chart.RefreshChart();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 添加多条线图
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
IEnumerator LineMutilSerie()
|
||||
{
|
||||
chart.title.subText = "多系列";
|
||||
var serie2 = chart.AddSerie(SerieType.Line, "Line2");
|
||||
serie2.lineType = LineType.Normal;
|
||||
for (int i = 0; i < m_DataNum; i++)
|
||||
{
|
||||
chart.AddData(1, UnityEngine.Random.Range(30, 90));
|
||||
}
|
||||
yield return new WaitForSeconds(1);
|
||||
|
||||
var serie3 = chart.AddSerie(SerieType.Line, "Line3");
|
||||
serie3.lineType = LineType.Normal;
|
||||
for (int i = 0; i < m_DataNum; i++)
|
||||
{
|
||||
chart.AddData(2, UnityEngine.Random.Range(30, 90));
|
||||
}
|
||||
yield return new WaitForSeconds(1);
|
||||
|
||||
chart.yAxis0.minMaxType = Axis.AxisMinMaxType.Default;
|
||||
chart.title.subText = "多系列 - 堆叠";
|
||||
serie.stack = "samename";
|
||||
serie2.stack = "samename";
|
||||
serie3.stack = "samename";
|
||||
chart.RefreshChart();
|
||||
yield return new WaitForSeconds(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1a4ce8176d040474db7238ccc962c79f
|
||||
guid: ce2fe7c8c98c644b9a8585050ea1d963
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
68
Assets/XCharts/Demo/Runtime/Demo11_AddSinCurve.cs
Normal file
68
Assets/XCharts/Demo/Runtime/Demo11_AddSinCurve.cs
Normal file
@@ -0,0 +1,68 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
|
||||
using UnityEngine;
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
[DisallowMultipleComponent]
|
||||
[ExecuteInEditMode]
|
||||
public class Demo11_AddSinCurve : MonoBehaviour
|
||||
{
|
||||
private float time;
|
||||
public int angle;
|
||||
private LineChart chart;
|
||||
|
||||
void Awake()
|
||||
{
|
||||
chart = gameObject.GetComponent<LineChart>();
|
||||
if (chart != null)
|
||||
{
|
||||
GameObject.DestroyImmediate(chart);
|
||||
}
|
||||
chart = gameObject.AddComponent<LineChart>();
|
||||
chart.title.show = true;
|
||||
chart.title.text = "Sin Curve";
|
||||
|
||||
chart.tooltip.show = true;
|
||||
chart.legend.show = false;
|
||||
|
||||
chart.xAxises[0].show = true;
|
||||
chart.xAxises[1].show = false;
|
||||
chart.yAxises[0].show = true;
|
||||
chart.yAxises[1].show = false;
|
||||
|
||||
chart.xAxises[0].type = Axis.AxisType.Value;
|
||||
chart.yAxises[0].type = Axis.AxisType.Value;
|
||||
|
||||
chart.xAxises[0].boundaryGap = false;
|
||||
chart.xAxises[0].maxCache = 0;
|
||||
chart.series.list[0].maxCache = 0;
|
||||
|
||||
chart.RemoveData();
|
||||
|
||||
var serie = chart.AddSerie(SerieType.Line);
|
||||
serie.symbol.type = SerieSymbolType.None;
|
||||
serie.lineType = LineType.Normal;
|
||||
for (angle = 0; angle < 1080; angle++)
|
||||
{
|
||||
float xvalue = Mathf.PI / 180 * angle;
|
||||
float yvalue = Mathf.Sin(xvalue);
|
||||
chart.AddData(0, xvalue, yvalue);
|
||||
}
|
||||
}
|
||||
|
||||
void Update()
|
||||
{
|
||||
if (angle > 3000) return;
|
||||
angle++;
|
||||
float xvalue = Mathf.PI / 180 * angle;
|
||||
float yvalue = Mathf.Sin(xvalue);
|
||||
chart.AddData(0, xvalue, yvalue);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ee2ff4f81f1754f9e8e1df797df8c201
|
||||
guid: dfc9b72c568f74d1dbf37310311aac8e
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
39
Assets/XCharts/Demo/Runtime/Demo12_CustomDrawing.cs
Normal file
39
Assets/XCharts/Demo/Runtime/Demo12_CustomDrawing.cs
Normal file
@@ -0,0 +1,39 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
[DisallowMultipleComponent]
|
||||
[ExecuteInEditMode]
|
||||
public class Demo12_CustomDrawing : MonoBehaviour
|
||||
{
|
||||
LineChart chart;
|
||||
void Awake()
|
||||
{
|
||||
chart = gameObject.GetComponent<LineChart>();
|
||||
if (chart == null) return;
|
||||
|
||||
chart.customDrawCallback = delegate (VertexHelper vh)
|
||||
{
|
||||
var dataPoints = chart.series.list[0].dataPoints;
|
||||
if (dataPoints.Count > 0)
|
||||
{
|
||||
var pos = dataPoints[3];
|
||||
var zeroPos = new Vector3(chart.coordinateX, chart.coordinateY);
|
||||
var startPos = new Vector3(pos.x, zeroPos.y);
|
||||
var endPos = new Vector3(pos.x, zeroPos.y + chart.coordinateHeight);
|
||||
ChartDrawer.DrawLine(vh, startPos, endPos, 1, Color.blue);
|
||||
ChartDrawer.DrawCricle(vh, pos, 5, Color.blue);
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a657ed0fd5aeb4312801338fb5308811
|
||||
guid: e27021e8c8377464a8b439cf785080ee
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
48
Assets/XCharts/Demo/Runtime/Demo13_LineSimple.cs
Normal file
48
Assets/XCharts/Demo/Runtime/Demo13_LineSimple.cs
Normal file
@@ -0,0 +1,48 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
|
||||
using UnityEngine;
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
[DisallowMultipleComponent]
|
||||
[ExecuteInEditMode]
|
||||
public class Demo13_LineSimple : MonoBehaviour
|
||||
{
|
||||
void Awake()
|
||||
{
|
||||
var chart = gameObject.GetComponent<LineChart>();
|
||||
if (chart == null)
|
||||
{
|
||||
chart = gameObject.AddComponent<LineChart>();
|
||||
}
|
||||
chart.title.show = true;
|
||||
chart.title.text = "Line Simple";
|
||||
|
||||
chart.tooltip.show = true;
|
||||
chart.legend.show = false;
|
||||
|
||||
chart.xAxises[0].show = true;
|
||||
chart.xAxises[1].show = false;
|
||||
chart.yAxises[0].show = true;
|
||||
chart.yAxises[1].show = false;
|
||||
chart.xAxises[0].type = Axis.AxisType.Category;
|
||||
chart.yAxises[0].type = Axis.AxisType.Value;
|
||||
|
||||
chart.xAxises[0].splitNumber = 10;
|
||||
chart.xAxises[0].boundaryGap = true;
|
||||
|
||||
chart.RemoveData();
|
||||
chart.AddSerie(SerieType.Line);
|
||||
for (int i = 0; i < 10; i++)
|
||||
{
|
||||
chart.AddXAxisData("x" + i);
|
||||
chart.AddData(0, Random.Range(10, 20));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
11
Assets/XCharts/Demo/Runtime/Demo13_LineSimple.cs.meta
Normal file
11
Assets/XCharts/Demo/Runtime/Demo13_LineSimple.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 75813849985304690b882bdd95364bae
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
167
Assets/XCharts/Demo/Runtime/Demo20_BarChart.cs
Normal file
167
Assets/XCharts/Demo/Runtime/Demo20_BarChart.cs
Normal file
@@ -0,0 +1,167 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
|
||||
using System.Collections;
|
||||
using UnityEngine;
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
[DisallowMultipleComponent]
|
||||
public class Demo20_BarChart : MonoBehaviour
|
||||
{
|
||||
private BarChart chart;
|
||||
private Serie serie, serie2;
|
||||
private int m_DataNum = 5;
|
||||
|
||||
void Awake()
|
||||
{
|
||||
LoopDemo();
|
||||
}
|
||||
|
||||
private void OnEnable()
|
||||
{
|
||||
LoopDemo();
|
||||
}
|
||||
|
||||
void LoopDemo()
|
||||
{
|
||||
StopAllCoroutines();
|
||||
StartCoroutine(PieDemo());
|
||||
}
|
||||
|
||||
IEnumerator PieDemo()
|
||||
{
|
||||
StartCoroutine(AddSimpleBar());
|
||||
yield return new WaitForSeconds(2);
|
||||
StartCoroutine(BarMutilSerie());
|
||||
yield return new WaitForSeconds(3);
|
||||
StartCoroutine(ZebraBar());
|
||||
yield return new WaitForSeconds(3);
|
||||
StartCoroutine(SameBarAndNotStack());
|
||||
yield return new WaitForSeconds(3);
|
||||
StartCoroutine(SameBarAndStack());
|
||||
yield return new WaitForSeconds(3);
|
||||
StartCoroutine(SameBarAndPercentStack());
|
||||
yield return new WaitForSeconds(10);
|
||||
|
||||
LoopDemo();
|
||||
}
|
||||
|
||||
IEnumerator AddSimpleBar()
|
||||
{
|
||||
chart = gameObject.GetComponent<BarChart>();
|
||||
if (chart == null) chart = gameObject.AddComponent<BarChart>();
|
||||
chart.title.text = "BarChart - 柱状图";
|
||||
chart.title.subText = "普通柱状图";
|
||||
|
||||
chart.yAxis0.minMaxType = Axis.AxisMinMaxType.Default;
|
||||
|
||||
chart.RemoveData();
|
||||
serie = chart.AddSerie(SerieType.Bar, "Bar1");
|
||||
|
||||
for (int i = 0; i < m_DataNum; i++)
|
||||
{
|
||||
chart.AddXAxisData("x" + (i + 1));
|
||||
chart.AddData(0, UnityEngine.Random.Range(30, 90));
|
||||
}
|
||||
yield return new WaitForSeconds(1);
|
||||
}
|
||||
|
||||
|
||||
IEnumerator BarMutilSerie()
|
||||
{
|
||||
chart.title.subText = "多条柱状图";
|
||||
|
||||
float now = serie.barWidth - 0.35f;
|
||||
while (serie.barWidth > 0.35f)
|
||||
{
|
||||
serie.barWidth -= now * Time.deltaTime;
|
||||
chart.RefreshChart();
|
||||
yield return null;
|
||||
}
|
||||
|
||||
serie2 = chart.AddSerie(SerieType.Bar, "Bar2");
|
||||
serie2.lineType = LineType.Normal;
|
||||
serie2.barWidth = 0.35f;
|
||||
for (int i = 0; i < m_DataNum; i++)
|
||||
{
|
||||
chart.AddData(1, UnityEngine.Random.Range(20, 90));
|
||||
}
|
||||
yield return new WaitForSeconds(1);
|
||||
}
|
||||
|
||||
IEnumerator ZebraBar()
|
||||
{
|
||||
chart.title.subText = "斑马柱状图";
|
||||
serie.barType = BarType.Zebra;
|
||||
serie2.barType = BarType.Zebra;
|
||||
serie.barZebraWidth = serie.barZebraGap = 4;
|
||||
serie2.barZebraWidth = serie2.barZebraGap = 4;
|
||||
chart.RefreshChart();
|
||||
yield return new WaitForSeconds(1);
|
||||
}
|
||||
|
||||
IEnumerator SameBarAndNotStack()
|
||||
{
|
||||
chart.title.subText = "非堆叠同柱";
|
||||
serie.barType = serie2.barType = BarType.Normal;
|
||||
serie.stack = "";
|
||||
serie2.stack = "";
|
||||
serie.barGap = -1;
|
||||
serie2.barGap = -1;
|
||||
chart.RefreshAxisMinMaxValue();
|
||||
yield return new WaitForSeconds(1);
|
||||
}
|
||||
|
||||
IEnumerator SameBarAndStack()
|
||||
{
|
||||
chart.title.subText = "堆叠同柱";
|
||||
serie.barType = serie2.barType = BarType.Normal;
|
||||
serie.stack = "samename";
|
||||
serie2.stack = "samename";
|
||||
chart.RefreshAxisMinMaxValue();
|
||||
yield return new WaitForSeconds(1);
|
||||
float now = 0.6f - serie.barWidth;
|
||||
while (serie.barWidth < 0.6f)
|
||||
{
|
||||
serie.barWidth += now * Time.deltaTime;
|
||||
serie2.barWidth += now * Time.deltaTime;
|
||||
chart.RefreshChart();
|
||||
yield return null;
|
||||
}
|
||||
serie.barWidth = serie2.barWidth;
|
||||
chart.RefreshChart();
|
||||
yield return new WaitForSeconds(1);
|
||||
}
|
||||
|
||||
IEnumerator SameBarAndPercentStack()
|
||||
{
|
||||
chart.title.subText = "百分比堆叠同柱";
|
||||
serie.barType = serie2.barType = BarType.Normal;
|
||||
serie.stack = "samename";
|
||||
serie2.stack = "samename";
|
||||
|
||||
serie.barPercentStack = true;
|
||||
|
||||
serie.label.show = true;
|
||||
serie.label.position = SerieLabel.Position.Center;
|
||||
serie.label.border = false;
|
||||
serie.label.color = Color.white;
|
||||
serie.label.formatter = "{d:f0}%";
|
||||
|
||||
serie2.label.show = true;
|
||||
serie2.label.position = SerieLabel.Position.Center;
|
||||
serie2.label.border = false;
|
||||
serie2.label.color = Color.white;
|
||||
serie2.label.formatter = "{d:f0}%";
|
||||
|
||||
chart.RefreshLabel();
|
||||
chart.RefreshChart();
|
||||
yield return new WaitForSeconds(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
11
Assets/XCharts/Demo/Runtime/Demo20_BarChart.cs.meta
Normal file
11
Assets/XCharts/Demo/Runtime/Demo20_BarChart.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9b4ec86ec75e9428e878f99c14f7676f
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
206
Assets/XCharts/Demo/Runtime/Demo30_PieChart.cs
Normal file
206
Assets/XCharts/Demo/Runtime/Demo30_PieChart.cs
Normal file
@@ -0,0 +1,206 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
|
||||
using System.Collections;
|
||||
using UnityEngine;
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
[DisallowMultipleComponent]
|
||||
public class Demo30_PieChart : MonoBehaviour
|
||||
{
|
||||
private PieChart chart;
|
||||
private Serie serie, serie1;
|
||||
private float m_RadiusSpeed = 100f;
|
||||
private float m_CenterSpeed = 1f;
|
||||
|
||||
void Awake()
|
||||
{
|
||||
LoopDemo();
|
||||
}
|
||||
|
||||
private void OnEnable()
|
||||
{
|
||||
LoopDemo();
|
||||
}
|
||||
|
||||
void LoopDemo()
|
||||
{
|
||||
StopAllCoroutines();
|
||||
StartCoroutine(PieDemo());
|
||||
}
|
||||
|
||||
IEnumerator PieDemo()
|
||||
{
|
||||
StartCoroutine(PieAdd());
|
||||
yield return new WaitForSeconds(2);
|
||||
StartCoroutine(PieShowLabel());
|
||||
yield return new WaitForSeconds(4);
|
||||
StartCoroutine(Doughnut());
|
||||
yield return new WaitForSeconds(3);
|
||||
StartCoroutine(DoublePie());
|
||||
yield return new WaitForSeconds(2);
|
||||
StartCoroutine(RosePie());
|
||||
yield return new WaitForSeconds(5);
|
||||
LoopDemo();
|
||||
}
|
||||
|
||||
IEnumerator PieAdd()
|
||||
{
|
||||
chart = gameObject.GetComponent<PieChart>();
|
||||
if (chart == null) chart = gameObject.AddComponent<PieChart>();
|
||||
chart.title.text = "PieChart - 饼图";
|
||||
chart.title.subText = "基础饼图";
|
||||
|
||||
chart.legend.show = true;
|
||||
chart.legend.location.align = Location.Align.TopLeft;
|
||||
chart.legend.location.top = 60;
|
||||
chart.legend.location.left = 2;
|
||||
chart.legend.itemWidth = 70;
|
||||
chart.legend.itemHeight = 20;
|
||||
chart.legend.orient = Orient.Vertical;
|
||||
|
||||
chart.RemoveData();
|
||||
serie = chart.AddSerie(SerieType.Pie, "访问来源");
|
||||
serie.pieRadius[0] = 0;
|
||||
serie.pieRadius[1] = 110;
|
||||
serie.pieCenter[0] = 0.5f;
|
||||
serie.pieCenter[1] = 0.4f;
|
||||
chart.AddData(0, 335, "直接访问");
|
||||
chart.AddData(0, 310, "邮件营销");
|
||||
chart.AddData(0, 243, "联盟广告");
|
||||
chart.AddData(0, 135, "视频广告");
|
||||
chart.AddData(0, 1548, "搜索引擎");
|
||||
chart.RefreshLabel();
|
||||
yield return new WaitForSeconds(1);
|
||||
}
|
||||
|
||||
IEnumerator PieShowLabel()
|
||||
{
|
||||
chart.title.subText = "显示文本标签";
|
||||
|
||||
serie.label.show = true;
|
||||
chart.RefreshChart();
|
||||
yield return new WaitForSeconds(1);
|
||||
serie.label.lineType = SerieLabel.LineType.Curves;
|
||||
chart.RefreshChart();
|
||||
|
||||
yield return new WaitForSeconds(1);
|
||||
serie.label.lineType = SerieLabel.LineType.HorizontalLine;
|
||||
chart.RefreshChart();
|
||||
|
||||
yield return new WaitForSeconds(1);
|
||||
serie.label.lineType = SerieLabel.LineType.BrokenLine;
|
||||
chart.RefreshChart();
|
||||
|
||||
yield return new WaitForSeconds(1);
|
||||
serie.label.show = false;
|
||||
chart.RefreshChart();
|
||||
}
|
||||
|
||||
IEnumerator Doughnut()
|
||||
{
|
||||
chart.title.subText = "圆环图";
|
||||
serie.pieRadius[0] = 2f;
|
||||
while (serie.pieRadius[0] < serie.pieRadius[1] * 0.7f)
|
||||
{
|
||||
serie.pieRadius[0] += m_RadiusSpeed * Time.deltaTime;
|
||||
chart.RefreshChart();
|
||||
yield return null;
|
||||
}
|
||||
serie.pieSpace = 1f;
|
||||
chart.RefreshChart();
|
||||
yield return new WaitForSeconds(1);
|
||||
|
||||
serie.data[0].selected = true;
|
||||
chart.RefreshChart();
|
||||
yield return new WaitForSeconds(1);
|
||||
|
||||
serie.pieSpace = 0f;
|
||||
serie.data[0].selected = false;
|
||||
chart.RefreshChart();
|
||||
yield return new WaitForSeconds(1);
|
||||
}
|
||||
|
||||
IEnumerator DoublePie()
|
||||
{
|
||||
chart.title.subText = "多图组合";
|
||||
|
||||
serie1 = chart.AddSerie(SerieType.Pie, "访问来源2");
|
||||
chart.AddData(1, 335, "直达");
|
||||
chart.AddData(1, 679, "营销广告");
|
||||
chart.AddData(1, 1548, "搜索引擎");
|
||||
serie1.pieRadius[0] = 0;
|
||||
serie1.pieRadius[1] = 2f;
|
||||
serie1.pieCenter[0] = 0.5f;
|
||||
serie1.pieCenter[1] = 0.4f;
|
||||
chart.RefreshChart();
|
||||
while (serie1.pieRadius[1] < serie.pieRadius[0] * 0.75f)
|
||||
{
|
||||
serie1.pieRadius[1] += m_RadiusSpeed * Time.deltaTime;
|
||||
chart.RefreshChart();
|
||||
yield return null;
|
||||
}
|
||||
|
||||
serie1.label.show = true;
|
||||
serie1.label.position = SerieLabel.Position.Inside;
|
||||
serie1.label.color = Color.white;
|
||||
serie1.label.fontSize = 14;
|
||||
serie1.label.border = false;
|
||||
|
||||
chart.RefreshLabel();
|
||||
chart.RefreshChart();
|
||||
yield return new WaitForSeconds(1);
|
||||
}
|
||||
|
||||
IEnumerator RosePie()
|
||||
{
|
||||
chart.title.subText = "玫瑰图";
|
||||
chart.legend.show = false;
|
||||
serie1.ClearData();
|
||||
serie.ClearData();
|
||||
serie1.pieRadius = serie.pieRadius = new float[2] { 0, 80 };
|
||||
serie1.label.position = SerieLabel.Position.Outside;
|
||||
serie1.label.lineType = SerieLabel.LineType.Curves;
|
||||
serie1.label.color = Color.clear;
|
||||
for (int i = 0; i < 2; i++)
|
||||
{
|
||||
chart.AddData(i, 10, "rose1");
|
||||
chart.AddData(i, 5, "rose2");
|
||||
chart.AddData(i, 15, "rose3");
|
||||
chart.AddData(i, 25, "rose4");
|
||||
chart.AddData(i, 20, "rose5");
|
||||
chart.AddData(i, 35, "rose6");
|
||||
chart.AddData(i, 30, "rose7");
|
||||
chart.AddData(i, 40, "rose8");
|
||||
}
|
||||
|
||||
while (serie.pieCenter[0] > 0.25f || serie1.pieCenter[0] < 0.7f)
|
||||
{
|
||||
if (serie.pieCenter[0] > 0.25f) serie.pieCenter[0] -= m_CenterSpeed * Time.deltaTime;
|
||||
if (serie1.pieCenter[0] < 0.7f) serie1.pieCenter[0] += m_CenterSpeed * Time.deltaTime;
|
||||
chart.RefreshChart();
|
||||
yield return null;
|
||||
}
|
||||
yield return new WaitForSeconds(1);
|
||||
while (serie.pieRadius[0] > 3f)
|
||||
{
|
||||
serie.pieRadius[0] -= m_RadiusSpeed * Time.deltaTime;
|
||||
serie1.pieRadius[0] -= m_RadiusSpeed * Time.deltaTime;
|
||||
chart.RefreshChart();
|
||||
yield return null;
|
||||
}
|
||||
|
||||
serie.pieRadius[0] = 0;
|
||||
serie1.pieRadius[0] = 0;
|
||||
serie.pieRoseType = RoseType.Area;
|
||||
serie1.pieRoseType = RoseType.Radius;
|
||||
chart.RefreshChart();
|
||||
yield return new WaitForSeconds(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
11
Assets/XCharts/Demo/Runtime/Demo30_PieChart.cs.meta
Normal file
11
Assets/XCharts/Demo/Runtime/Demo30_PieChart.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ccf4c940af6c343e6abea9580e3915bb
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
38
Assets/XCharts/Demo/Runtime/Demo50_Scatter.cs
Normal file
38
Assets/XCharts/Demo/Runtime/Demo50_Scatter.cs
Normal file
@@ -0,0 +1,38 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
[DisallowMultipleComponent]
|
||||
[ExecuteInEditMode]
|
||||
public class Demo50_Scatter : MonoBehaviour
|
||||
{
|
||||
private ScatterChart chart;
|
||||
|
||||
void Awake()
|
||||
{
|
||||
chart = gameObject.GetComponent<ScatterChart>();
|
||||
if (chart == null) return;
|
||||
chart.series.SetSerieSymbolSizeCallback(SymbolSize, SymbolSelectedSize);
|
||||
}
|
||||
|
||||
float SymbolSize(List<float> data)
|
||||
{
|
||||
//return Mathf.Clamp(data[1] * 10,1,100);
|
||||
return (float)(Mathf.Sqrt(data[2]) / 6e2);
|
||||
}
|
||||
|
||||
float SymbolSelectedSize(List<float> data)
|
||||
{
|
||||
//return Mathf.Clamp(data[1] * 10,1,100);
|
||||
return (float)(Mathf.Sqrt(data[2]) / 5e2);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: bb4941eb0bbd14736b16b39d256255bd
|
||||
guid: 9f7e5ced8db104dcc8447f1e5ac903f4
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
104
Assets/XCharts/Demo/Runtime/Demo60_Heatmap.cs
Normal file
104
Assets/XCharts/Demo/Runtime/Demo60_Heatmap.cs
Normal file
@@ -0,0 +1,104 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
[DisallowMultipleComponent]
|
||||
[ExecuteInEditMode]
|
||||
public class Demo60_Heatmap : MonoBehaviour
|
||||
{
|
||||
private HeatmapChart chart;
|
||||
|
||||
void Awake()
|
||||
{
|
||||
chart = gameObject.GetComponent<HeatmapChart>();
|
||||
if (chart == null)
|
||||
{
|
||||
chart = gameObject.AddComponent<HeatmapChart>();
|
||||
}
|
||||
chart.title.text = "HeatmapChart";
|
||||
chart.tooltip.type = Tooltip.Type.None;
|
||||
chart.grid.left = 100;
|
||||
chart.grid.right = 60;
|
||||
chart.grid.bottom = 60;
|
||||
//目前只支持Category
|
||||
chart.xAxises[0].type = Axis.AxisType.Category;
|
||||
chart.yAxises[0].type = Axis.AxisType.Category;
|
||||
|
||||
chart.xAxises[0].boundaryGap = true;
|
||||
chart.xAxises[0].boundaryGap = true;
|
||||
|
||||
chart.xAxises[0].splitNumber = 10;
|
||||
chart.yAxises[0].splitNumber = 10;
|
||||
|
||||
//清空数据重新添加
|
||||
chart.RemoveData();
|
||||
var serie = chart.AddSerie(SerieType.Heatmap, "serie1");
|
||||
|
||||
//设置样式
|
||||
serie.itemStyle.show = true;
|
||||
serie.itemStyle.borderWidth = 1;
|
||||
serie.itemStyle.borderColor = Color.clear;
|
||||
|
||||
//设置高亮样式
|
||||
serie.emphasis.show = true;
|
||||
serie.emphasis.itemStyle.show = true;
|
||||
serie.emphasis.itemStyle.borderWidth = 1;
|
||||
serie.emphasis.itemStyle.borderColor = Color.black;
|
||||
|
||||
//设置视觉映射组件
|
||||
chart.visualMap.enable = true;
|
||||
chart.visualMap.max = 10;
|
||||
chart.visualMap.range[0] = 0f;
|
||||
chart.visualMap.range[1] = 10f;
|
||||
chart.visualMap.orient = Orient.Vertical;
|
||||
chart.visualMap.calculable = true;
|
||||
chart.visualMap.location.align = Location.Align.BottomLeft;
|
||||
chart.visualMap.location.bottom = 100;
|
||||
chart.visualMap.location.left = 30;
|
||||
|
||||
//清空颜色重新添加
|
||||
chart.visualMap.inRange.Clear();
|
||||
|
||||
var heatmapGridWid = 10f;
|
||||
int xSplitNumber = (int)(chart.coordinateWidth / heatmapGridWid);
|
||||
int ySplitNumber = (int)(chart.coordinateHeight / heatmapGridWid);
|
||||
var colors = new List<string>{"#313695", "#4575b4", "#74add1", "#abd9e9", "#e0f3f8", "#ffffbf",
|
||||
"#fee090", "#fdae61", "#f46d43", "#d73027", "#a50026"};
|
||||
foreach (var str in colors)
|
||||
{
|
||||
chart.visualMap.inRange.Add(ThemeInfo.GetColor(str));
|
||||
}
|
||||
//添加xAxis的数据
|
||||
for (int i = 0; i < xSplitNumber; i++)
|
||||
{
|
||||
chart.AddXAxisData((i + 1).ToString());
|
||||
}
|
||||
//添加yAxis的数据
|
||||
for (int i = 0; i < ySplitNumber; i++)
|
||||
{
|
||||
chart.AddYAxisData((i + 1).ToString());
|
||||
}
|
||||
for (int i = 0; i < xSplitNumber; i++)
|
||||
{
|
||||
for (int j = 0; j < ySplitNumber; j++)
|
||||
{
|
||||
var value = 0f;
|
||||
var rate = Random.Range(0, 101);
|
||||
if (rate > 70) value = Random.Range(8f, 10f);
|
||||
else value = Random.Range(1f, 8f);
|
||||
var list = new List<float> { i, j, value };
|
||||
//至少是一个三位数据:(x,y,value)
|
||||
chart.AddData(0, list);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
11
Assets/XCharts/Demo/Runtime/Demo60_Heatmap.cs.meta
Normal file
11
Assets/XCharts/Demo/Runtime/Demo60_Heatmap.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 14e10f24be7ee4f609b36b904224382d
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
71
Assets/XCharts/Demo/Runtime/Demo_Dynamic.cs
Normal file
71
Assets/XCharts/Demo/Runtime/Demo_Dynamic.cs
Normal file
@@ -0,0 +1,71 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
|
||||
using System;
|
||||
using UnityEngine;
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
[DisallowMultipleComponent]
|
||||
[ExecuteInEditMode]
|
||||
[RequireComponent(typeof(CoordinateChart))]
|
||||
public class Demo_Dynamic : MonoBehaviour
|
||||
{
|
||||
public int maxCacheDataNumber = 100;
|
||||
public float initDataTime = 2;
|
||||
|
||||
private CoordinateChart chart;
|
||||
private float updateTime;
|
||||
private float initTime;
|
||||
private int initCount;
|
||||
private int count;
|
||||
private bool isInited;
|
||||
private DateTime timeNow;
|
||||
|
||||
void Awake()
|
||||
{
|
||||
chart = gameObject.GetComponentInChildren<CoordinateChart>();
|
||||
chart.RemoveData();
|
||||
var serie = chart.AddSerie(SerieType.Line);
|
||||
serie.symbol.type = SerieSymbolType.None;
|
||||
serie.maxCache = maxCacheDataNumber;
|
||||
chart.xAxises[0].maxCache = maxCacheDataNumber;
|
||||
timeNow = DateTime.Now;
|
||||
timeNow = timeNow.AddSeconds(-maxCacheDataNumber);
|
||||
}
|
||||
|
||||
void Update()
|
||||
{
|
||||
if (initCount < maxCacheDataNumber)
|
||||
{
|
||||
int count = (int)(maxCacheDataNumber / initDataTime * Time.deltaTime);
|
||||
for (int i = 0; i < count; i++)
|
||||
{
|
||||
timeNow = timeNow.AddSeconds(1);
|
||||
string category = timeNow.ToString("hh:mm:ss");
|
||||
float value = UnityEngine.Random.Range(60, 150);
|
||||
chart.AddXAxisData(category);
|
||||
chart.AddData(0, value);
|
||||
initCount++;
|
||||
if (initCount > maxCacheDataNumber) break;
|
||||
}
|
||||
chart.RefreshChart();
|
||||
}
|
||||
updateTime += Time.deltaTime;
|
||||
if (updateTime >= 1)
|
||||
{
|
||||
updateTime = 0;
|
||||
count++;
|
||||
string category = DateTime.Now.ToString("hh:mm:ss");
|
||||
float value = UnityEngine.Random.Range(60, 150);
|
||||
chart.AddXAxisData(category);
|
||||
chart.AddData(0, value);
|
||||
chart.RefreshChart();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
11
Assets/XCharts/Demo/Runtime/Demo_Dynamic.cs.meta
Normal file
11
Assets/XCharts/Demo/Runtime/Demo_Dynamic.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d7774c94c82584c0ca35e6f79d1fc29c
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
55
Assets/XCharts/Demo/Runtime/Demo_LargeData.cs
Normal file
55
Assets/XCharts/Demo/Runtime/Demo_LargeData.cs
Normal file
@@ -0,0 +1,55 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
|
||||
using UnityEngine;
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
[DisallowMultipleComponent]
|
||||
[ExecuteInEditMode]
|
||||
[RequireComponent(typeof(CoordinateChart))]
|
||||
public class Demo_LargeData : MonoBehaviour
|
||||
{
|
||||
public int maxCacheDataNumber = 3000;
|
||||
public float initDataTime = 5;
|
||||
|
||||
private CoordinateChart chart;
|
||||
private float initTime;
|
||||
private int initCount = 0;
|
||||
private System.DateTime timeNow;
|
||||
|
||||
void Awake()
|
||||
{
|
||||
chart = gameObject.GetComponentInChildren<CoordinateChart>();
|
||||
timeNow = System.DateTime.Now;
|
||||
chart.ClearAxisData();
|
||||
chart.series.ClearData();
|
||||
chart.series.list[0].maxCache = maxCacheDataNumber;
|
||||
chart.xAxises[0].maxCache = maxCacheDataNumber;
|
||||
chart.title.text = maxCacheDataNumber + "数据";
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (initCount < maxCacheDataNumber)
|
||||
{
|
||||
for (int i = 0; i < 10; i++)
|
||||
{
|
||||
initCount++;
|
||||
if (initCount > maxCacheDataNumber) break;
|
||||
chart.title.text = initCount + "数据";
|
||||
timeNow = timeNow.AddSeconds(1);
|
||||
float xvalue = Mathf.PI / 180 * initCount;
|
||||
float yvalue = Mathf.Sin(xvalue);
|
||||
|
||||
chart.AddData(0, 15 + yvalue * 2);
|
||||
chart.AddXAxisData(timeNow.ToString("hh:mm:ss"));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
11
Assets/XCharts/Demo/Runtime/Demo_LargeData.cs.meta
Normal file
11
Assets/XCharts/Demo/Runtime/Demo_LargeData.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c777ceb41c4c743d2ba0ea573287be9e
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
46
Assets/XCharts/Demo/Runtime/Demo_PieChart.cs
Normal file
46
Assets/XCharts/Demo/Runtime/Demo_PieChart.cs
Normal file
@@ -0,0 +1,46 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
|
||||
using UnityEngine;
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
[DisallowMultipleComponent]
|
||||
[ExecuteInEditMode]
|
||||
[RequireComponent(typeof(PieChart))]
|
||||
public class Demo_PieChart : MonoBehaviour
|
||||
{
|
||||
private PieChart chart;
|
||||
private float time;
|
||||
private int count = 0;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
chart = transform.GetComponent<PieChart>();
|
||||
chart.ClearData();
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
time += Time.deltaTime;
|
||||
if (time > 1)
|
||||
{
|
||||
time = 0;
|
||||
if (count < 5)
|
||||
{
|
||||
chart.AddData(0, Random.Range(10, 100), "time" + count);
|
||||
}
|
||||
else
|
||||
{
|
||||
int index = count % 5;
|
||||
chart.UpdateData(0, Random.Range(10, 100), index);
|
||||
}
|
||||
count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
11
Assets/XCharts/Demo/Runtime/Demo_PieChart.cs.meta
Normal file
11
Assets/XCharts/Demo/Runtime/Demo_PieChart.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8c85e69c8e4374481be85fda06a45209
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
41
Assets/XCharts/Demo/Runtime/Demo_Test.cs
Normal file
41
Assets/XCharts/Demo/Runtime/Demo_Test.cs
Normal file
@@ -0,0 +1,41 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
[DisallowMultipleComponent]
|
||||
[ExecuteInEditMode]
|
||||
public class Demo_Test : MonoBehaviour
|
||||
{
|
||||
LineChart chart;
|
||||
void Awake()
|
||||
{
|
||||
chart = gameObject.GetComponent<LineChart>();
|
||||
if (chart == null)
|
||||
{
|
||||
chart = gameObject.AddComponent<LineChart>();
|
||||
}
|
||||
|
||||
var buttom = transform.parent.gameObject.GetComponentInChildren<Button>();
|
||||
buttom.onClick.AddListener(AddData);
|
||||
}
|
||||
|
||||
void AddData()
|
||||
{
|
||||
chart.series.list[0].ClearData();
|
||||
chart.series.list[1].ClearData();
|
||||
for (int i = 0; i < 5; i++)
|
||||
{
|
||||
chart.AddData(0, Random.Range(20, 100));
|
||||
chart.AddData(1, Random.Range(1, 10));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
11
Assets/XCharts/Demo/Runtime/Demo_Test.cs.meta
Normal file
11
Assets/XCharts/Demo/Runtime/Demo_Test.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e538728f2646249ae9c9206b8ceffe25
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
14
Assets/XCharts/Demo/Runtime/XCharts.Demo.Runtime.asmdef
Normal file
14
Assets/XCharts/Demo/Runtime/XCharts.Demo.Runtime.asmdef
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"name": "XCharts.Demo.Runtime",
|
||||
"references": [
|
||||
"XCharts.Runtime"
|
||||
],
|
||||
"optionalUnityReferences": [],
|
||||
"includePlatforms": [],
|
||||
"excludePlatforms": [],
|
||||
"allowUnsafeCode": false,
|
||||
"overrideReferences": false,
|
||||
"precompiledReferences": [],
|
||||
"autoReferenced": true,
|
||||
"defineConstraints": []
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 80ba6ed17de4740039736cf78bca3a17
|
||||
AssemblyDefinitionImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,188 +0,0 @@
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.EventSystems;
|
||||
using UnityEngine.UI;
|
||||
using XCharts;
|
||||
|
||||
|
||||
[System.Serializable]
|
||||
public class ChartModule
|
||||
{
|
||||
[SerializeField] private string m_Name;
|
||||
[SerializeField] private string m_Title;
|
||||
[SerializeField] private bool m_Selected;
|
||||
[SerializeField] private GameObject m_Panel;
|
||||
|
||||
public string name { get { return m_Name; } set { m_Name = value; } }
|
||||
public string title { get { return m_Title; } set { m_Title = value; } }
|
||||
public bool select { get { return m_Selected; } set { m_Selected = value; } }
|
||||
public GameObject panel { get { return m_Panel; } set { m_Panel = value; } }
|
||||
public Button button { get; set; }
|
||||
}
|
||||
|
||||
[DisallowMultipleComponent]
|
||||
[ExecuteInEditMode]
|
||||
public class Demo : MonoBehaviour
|
||||
{
|
||||
[SerializeField] private Color m_ButtonNormalColor;
|
||||
[SerializeField] private Color m_ButtonSelectedColor;
|
||||
[SerializeField] private Color m_ButtonHighlightColor;
|
||||
[SerializeField] private List<ChartModule> m_ChartModule;
|
||||
|
||||
private GameObject m_BtnClone;
|
||||
private Theme m_SelectedTheme;
|
||||
private int m_LastSelectedModuleIndex;
|
||||
|
||||
private Button m_DefaultThemeButton;
|
||||
private Button m_LightThemeButton;
|
||||
private Button m_DarkThemeButton;
|
||||
|
||||
private Text m_Title;
|
||||
|
||||
private ScrollRect m_ScrollRect;
|
||||
private Mask m_Mark;
|
||||
|
||||
void Awake()
|
||||
{
|
||||
m_SelectedTheme = Theme.Default;
|
||||
|
||||
m_ButtonNormalColor = ChartHelper.GetColor("#293C55FF");
|
||||
m_ButtonSelectedColor = ChartHelper.GetColor("#e43c59ff");
|
||||
m_ButtonHighlightColor = ChartHelper.GetColor("#0E151FFF");
|
||||
|
||||
m_ScrollRect = transform.Find("chart_detail").GetComponent<ScrollRect>();
|
||||
m_Mark = transform.Find("chart_detail/Viewport").GetComponent<Mask>();
|
||||
m_Mark.enabled = true;
|
||||
m_Title = transform.Find("chart_title/Text").GetComponent<Text>();
|
||||
|
||||
InitThemeButton();
|
||||
InitModuleButton();
|
||||
}
|
||||
|
||||
void Update()
|
||||
{
|
||||
#if UNITY_EDITOR
|
||||
if (m_ChartModule.Count <= 0) return;
|
||||
int selectedModuleIndex = -1;
|
||||
for (int i = 0; i < m_ChartModule.Count; i++)
|
||||
{
|
||||
if (selectedModuleIndex >= 0 && i > selectedModuleIndex)
|
||||
{
|
||||
m_ChartModule[i].select = false;
|
||||
}
|
||||
else if (m_ChartModule[i].select)
|
||||
{
|
||||
selectedModuleIndex = i;
|
||||
}
|
||||
}
|
||||
if (selectedModuleIndex < 0) selectedModuleIndex = 0;
|
||||
if (selectedModuleIndex != m_LastSelectedModuleIndex)
|
||||
{
|
||||
InitModuleButton();
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void InitModuleButton()
|
||||
{
|
||||
var btnPanel = transform.Find("chart_list");
|
||||
m_BtnClone = transform.Find("btn_clone").gameObject;
|
||||
m_BtnClone.SetActive(false);
|
||||
ChartHelper.DestoryAllChilds(btnPanel);
|
||||
foreach (var module in m_ChartModule)
|
||||
{
|
||||
var btnName = "btn_" + module.name;
|
||||
GameObject btn;
|
||||
if (btnPanel.Find(btnName))
|
||||
{
|
||||
btn = btnPanel.Find(btnName).gameObject;
|
||||
btn.SetActive(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
btn = GameObject.Instantiate(m_BtnClone);
|
||||
btn.SetActive(true);
|
||||
btn.name = btnName;
|
||||
btn.transform.SetParent(btnPanel);
|
||||
btn.transform.localPosition = Vector3.zero;
|
||||
}
|
||||
btn.transform.localScale = Vector3.one;
|
||||
module.button = btn.GetComponent<Button>();
|
||||
module.button.GetComponentInChildren<Text>().text = module.name;
|
||||
|
||||
ChartHelper.AddEventListener(btn.gameObject, EventTriggerType.PointerDown, (data) =>
|
||||
{
|
||||
ClickModule(module);
|
||||
});
|
||||
}
|
||||
|
||||
for (int i = 0; i < m_ChartModule.Count; i++)
|
||||
{
|
||||
var module = m_ChartModule[i];
|
||||
if (module.select)
|
||||
{
|
||||
ClickModule(module);
|
||||
m_LastSelectedModuleIndex = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ClickModule(ChartModule selectedModule)
|
||||
{
|
||||
foreach (var module in m_ChartModule)
|
||||
{
|
||||
if (selectedModule != module)
|
||||
{
|
||||
var block = module.button.colors;
|
||||
block.highlightedColor = m_ButtonHighlightColor;
|
||||
block.normalColor = m_ButtonNormalColor;
|
||||
module.button.colors = block;
|
||||
module.panel.SetActive(false);
|
||||
module.select = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
var block = module.button.colors;
|
||||
block.highlightedColor = m_ButtonSelectedColor;
|
||||
block.normalColor = m_ButtonSelectedColor;
|
||||
module.button.colors = block;
|
||||
module.panel.SetActive(true);
|
||||
module.select = true;
|
||||
}
|
||||
}
|
||||
m_ScrollRect.content = selectedModule.panel.GetComponent<RectTransform>();
|
||||
m_Title.text = string.IsNullOrEmpty(selectedModule.title) ?
|
||||
selectedModule.name : selectedModule.title;
|
||||
}
|
||||
|
||||
void InitThemeButton()
|
||||
{
|
||||
m_DefaultThemeButton = transform.Find("chart_theme/btn_default").GetComponent<Button>();
|
||||
m_LightThemeButton = transform.Find("chart_theme/btn_light").GetComponent<Button>();
|
||||
m_DarkThemeButton = transform.Find("chart_theme/btn_dark").GetComponent<Button>();
|
||||
|
||||
m_DefaultThemeButton.transform.Find("selected").gameObject.SetActive(m_SelectedTheme == Theme.Default);
|
||||
m_LightThemeButton.transform.Find("selected").gameObject.SetActive(m_SelectedTheme == Theme.Light);
|
||||
m_DarkThemeButton.transform.Find("selected").gameObject.SetActive(m_SelectedTheme == Theme.Dark);
|
||||
|
||||
m_DefaultThemeButton.onClick.AddListener(delegate () { SelecteTheme(Theme.Default); });
|
||||
m_LightThemeButton.onClick.AddListener(delegate () { SelecteTheme(Theme.Light); });
|
||||
m_DarkThemeButton.onClick.AddListener(delegate () { SelecteTheme(Theme.Dark); });
|
||||
|
||||
//SelecteTheme(Theme.Default);
|
||||
}
|
||||
|
||||
void SelecteTheme(Theme theme)
|
||||
{
|
||||
m_SelectedTheme = theme;
|
||||
m_DefaultThemeButton.transform.Find("selected").gameObject.SetActive(m_SelectedTheme == Theme.Default);
|
||||
m_LightThemeButton.transform.Find("selected").gameObject.SetActive(m_SelectedTheme == Theme.Light);
|
||||
m_DarkThemeButton.transform.Find("selected").gameObject.SetActive(m_SelectedTheme == Theme.Dark);
|
||||
var charts = transform.GetComponentsInChildren<BaseChart>();
|
||||
foreach (var chart in charts)
|
||||
{
|
||||
chart.UpdateTheme(theme);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f2cb45775d5ecfa4488a53912a49a832
|
||||
timeCreated: 1555862356
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,39 +0,0 @@
|
||||
using UnityEngine;
|
||||
using XCharts;
|
||||
|
||||
[DisallowMultipleComponent]
|
||||
[ExecuteInEditMode]
|
||||
public class Demo10_LineSimple : MonoBehaviour
|
||||
{
|
||||
void Awake()
|
||||
{
|
||||
var chart = gameObject.GetComponent<LineChart>();
|
||||
if (chart == null) return;
|
||||
|
||||
chart.title.show = true;
|
||||
chart.title.text = "Line Simple";
|
||||
|
||||
chart.tooltip.show = true;
|
||||
chart.legend.show = false;
|
||||
|
||||
chart.xAxises[0].show = true;
|
||||
chart.xAxises[1].show = false;
|
||||
chart.yAxises[0].show = true;
|
||||
chart.yAxises[1].show = false;
|
||||
|
||||
chart.xAxises[0].type = Axis.AxisType.Category;
|
||||
chart.yAxises[0].type = Axis.AxisType.Value;
|
||||
|
||||
int dataCount = 10;
|
||||
chart.xAxises[0].splitNumber = dataCount;
|
||||
chart.xAxises[0].boundaryGap = true;
|
||||
|
||||
chart.RemoveData();
|
||||
chart.AddSerie("test", SerieType.Line);
|
||||
for (int i = 0; i < dataCount; i++)
|
||||
{
|
||||
chart.AddXAxisData("x" + i);
|
||||
chart.AddData(0, Random.Range(10, 20));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,61 +0,0 @@
|
||||
using UnityEngine;
|
||||
using XCharts;
|
||||
|
||||
[DisallowMultipleComponent]
|
||||
[ExecuteInEditMode]
|
||||
public class Demo11_AddSinCurve : MonoBehaviour
|
||||
{
|
||||
private float time;
|
||||
public int angle;
|
||||
private LineChart chart;
|
||||
|
||||
void Awake()
|
||||
{
|
||||
chart = gameObject.GetComponent<LineChart>();
|
||||
if (chart != null)
|
||||
{
|
||||
GameObject.DestroyImmediate(chart);
|
||||
}
|
||||
chart = gameObject.AddComponent<LineChart>();
|
||||
chart.title.show = true;
|
||||
chart.title.text = "Sin Curve";
|
||||
|
||||
chart.tooltip.show = true;
|
||||
chart.legend.show = false;
|
||||
|
||||
chart.xAxises[0].show = true;
|
||||
chart.xAxises[1].show = false;
|
||||
chart.yAxises[0].show = true;
|
||||
chart.yAxises[1].show = false;
|
||||
|
||||
chart.xAxises[0].type = Axis.AxisType.Value;
|
||||
chart.yAxises[0].type = Axis.AxisType.Value;
|
||||
|
||||
chart.xAxises[0].boundaryGap = false;
|
||||
chart.maxCacheDataNumber = 0;
|
||||
|
||||
chart.line.step = false;
|
||||
chart.line.smooth = false;
|
||||
chart.line.area = false;
|
||||
|
||||
chart.RemoveData();
|
||||
|
||||
var serie = chart.AddSerie("test", SerieType.Line);
|
||||
serie.symbol.type = SerieSymbolType.None;
|
||||
for (angle = 0; angle < 1080; angle++)
|
||||
{
|
||||
float xvalue = Mathf.PI / 180 * angle;
|
||||
float yvalue = Mathf.Sin(xvalue);
|
||||
chart.AddData(0, xvalue, yvalue);
|
||||
}
|
||||
}
|
||||
|
||||
void Update()
|
||||
{
|
||||
if(angle > 3000) return;
|
||||
angle++;
|
||||
float xvalue = Mathf.PI / 180 * angle;
|
||||
float yvalue = Mathf.Sin(xvalue);
|
||||
chart.AddData(0, xvalue, yvalue);
|
||||
}
|
||||
}
|
||||
@@ -1,29 +0,0 @@
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using XCharts;
|
||||
|
||||
[DisallowMultipleComponent]
|
||||
[ExecuteInEditMode]
|
||||
public class Demo50_Scatter : MonoBehaviour
|
||||
{
|
||||
private ScatterChart chart;
|
||||
|
||||
void Awake()
|
||||
{
|
||||
chart = gameObject.GetComponent<ScatterChart>();
|
||||
if (chart == null) return;
|
||||
chart.series.SetSerieSymbolSizeCallback(SymbolSize,SymbolSelectedSize);
|
||||
}
|
||||
|
||||
float SymbolSize(List<float> data)
|
||||
{
|
||||
//return Mathf.Clamp(data[1] * 10,1,100);
|
||||
return (float)(Mathf.Sqrt(data[2]) / 6e2);
|
||||
}
|
||||
|
||||
float SymbolSelectedSize(List<float> data)
|
||||
{
|
||||
//return Mathf.Clamp(data[1] * 10,1,100);
|
||||
return (float)(Mathf.Sqrt(data[2]) / 5e2);
|
||||
}
|
||||
}
|
||||
@@ -1,61 +0,0 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
using XCharts;
|
||||
|
||||
[DisallowMultipleComponent]
|
||||
[ExecuteInEditMode]
|
||||
[RequireComponent(typeof(CoordinateChart))]
|
||||
public class Demo_Dynamic : MonoBehaviour
|
||||
{
|
||||
public int maxCacheDataNumber = 100;
|
||||
public float initDataTime = 2;
|
||||
|
||||
private CoordinateChart chart;
|
||||
private float updateTime;
|
||||
private float initTime;
|
||||
private int initCount;
|
||||
private int count;
|
||||
private bool isInited;
|
||||
private DateTime timeNow;
|
||||
|
||||
void Awake()
|
||||
{
|
||||
chart = gameObject.GetComponentInChildren<CoordinateChart>();
|
||||
chart.RemoveData();
|
||||
var serie = chart.AddSerie("data", SerieType.Line);
|
||||
serie.symbol.type = SerieSymbolType.None;
|
||||
chart.maxCacheDataNumber = maxCacheDataNumber;
|
||||
timeNow = DateTime.Now;
|
||||
timeNow = timeNow.AddSeconds(-maxCacheDataNumber);
|
||||
}
|
||||
|
||||
void Update()
|
||||
{
|
||||
if (initCount < maxCacheDataNumber)
|
||||
{
|
||||
int count = (int)(maxCacheDataNumber / initDataTime * Time.deltaTime);
|
||||
for (int i = 0; i < count; i++)
|
||||
{
|
||||
timeNow = timeNow.AddSeconds(1);
|
||||
string category = timeNow.ToString("hh:mm:ss");
|
||||
float value = UnityEngine.Random.Range(60, 150);
|
||||
chart.AddXAxisData(category);
|
||||
chart.AddData(0, value);
|
||||
initCount++;
|
||||
if (initCount > maxCacheDataNumber) break;
|
||||
}
|
||||
chart.RefreshChart();
|
||||
}
|
||||
updateTime += Time.deltaTime;
|
||||
if (updateTime >= 1)
|
||||
{
|
||||
updateTime = 0;
|
||||
count++;
|
||||
string category = DateTime.Now.ToString("hh:mm:ss");
|
||||
float value = UnityEngine.Random.Range(60, 150);
|
||||
chart.AddXAxisData(category);
|
||||
chart.AddData(0, value);
|
||||
chart.RefreshChart();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1c3d5e10d25691247b392b09eec051bf
|
||||
timeCreated: 1557485360
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,42 +0,0 @@
|
||||
using UnityEngine;
|
||||
using XCharts;
|
||||
|
||||
[DisallowMultipleComponent]
|
||||
[ExecuteInEditMode]
|
||||
[RequireComponent(typeof(CoordinateChart))]
|
||||
public class Demo_LargeData : MonoBehaviour
|
||||
{
|
||||
public int maxCacheDataNumber = 3000;
|
||||
public float initDataTime = 5;
|
||||
|
||||
private CoordinateChart chart;
|
||||
private float initTime;
|
||||
private int initCount = 0;
|
||||
private System.DateTime timeNow;
|
||||
|
||||
void Awake()
|
||||
{
|
||||
chart = gameObject.GetComponentInChildren<CoordinateChart>();
|
||||
timeNow = System.DateTime.Now;
|
||||
chart.ClearAxisData();
|
||||
chart.series.ClearData();
|
||||
chart.maxCacheDataNumber = maxCacheDataNumber;
|
||||
timeNow = timeNow.AddSeconds(-maxCacheDataNumber);
|
||||
}
|
||||
|
||||
void Update()
|
||||
{
|
||||
if (initCount < maxCacheDataNumber)
|
||||
{
|
||||
int count = (int)(maxCacheDataNumber / initDataTime * Time.deltaTime);
|
||||
for (int i = 0; i < count; i++)
|
||||
{
|
||||
timeNow = timeNow.AddSeconds(1);
|
||||
chart.AddXAxisData(timeNow.ToString("hh:mm:ss"));
|
||||
chart.AddData(0, UnityEngine.Random.Range(60, 150));
|
||||
initCount++;
|
||||
if (initCount > maxCacheDataNumber) break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0b7f7cfd79a632a46bdc2aac41160f37
|
||||
timeCreated: 1557485007
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,37 +0,0 @@
|
||||
using UnityEngine;
|
||||
using XCharts;
|
||||
|
||||
[DisallowMultipleComponent]
|
||||
[ExecuteInEditMode]
|
||||
[RequireComponent(typeof(PieChart))]
|
||||
public class Demo_PieChart : MonoBehaviour
|
||||
{
|
||||
private PieChart chart;
|
||||
private float time;
|
||||
private int count = 0;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
chart = transform.GetComponent<PieChart>();
|
||||
chart.ClearData();
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
time += Time.deltaTime;
|
||||
if (time > 1)
|
||||
{
|
||||
time = 0;
|
||||
if (count < 5)
|
||||
{
|
||||
chart.AddData(0, Random.Range(10, 100), "time" + count);
|
||||
}
|
||||
else
|
||||
{
|
||||
int index = count % 5;
|
||||
chart.UpdateData(0, Random.Range(10, 100),index);
|
||||
}
|
||||
count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1f0aafe148c9e4f4dbf24fc6542722fa
|
||||
timeCreated: 1557832345
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,8 +1,6 @@
|
||||
fileFormatVersion: 2
|
||||
guid: dd29cbce72290724b8772e66460b2a1d
|
||||
guid: 0793c29ff7adb422fb93f9f4e29d5a06
|
||||
folderAsset: yes
|
||||
timeCreated: 1536101222
|
||||
licenseType: Free
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
114
Assets/XCharts/Documentation/XChartsAPI.md
Normal file
114
Assets/XCharts/Documentation/XChartsAPI.md
Normal file
@@ -0,0 +1,114 @@
|
||||
# XCharts API
|
||||
|
||||
[返回首页](https://github.com/monitor1394/unity-ugui-XCharts)
|
||||
[XCharts配置项手册](XCharts配置项手册.md)
|
||||
[XCharts问答](XCharts问答.md)
|
||||
|
||||
## `BaseChart`
|
||||
|
||||
---
|
||||
|
||||
* `BaseChart.themeInfo`:主题组件`ThemeInfo`。
|
||||
* `BaseChart.title`:标题组件`Title`。
|
||||
* `BaseChart.legend`:图例组件`Legend`。
|
||||
* `BaseChart.tooltip`:提示框组件`Tooltip`。
|
||||
* `BaseChart.series`:系列列表`Series`。
|
||||
* `BaseChart.chartWidth`:图表的宽。
|
||||
* `BaseChart.chartHeight`:图表的高。
|
||||
* `BaseChart.customDrawCallback`:自定义绘制回调函数。
|
||||
* `BaseChart.SetSize(float width, float height)`:设置图表的大小。
|
||||
* `BaseChart.ClearData()`:清除所有数据,系列列表会保留,只是移除列表中系列的数据。
|
||||
* `BaseChart.RemoveData()`:清除所有系列和图例数据,系列列表也会被清除。
|
||||
* `BaseChart.RemoveData(string serieName)`:清除指定系列名称的数据。
|
||||
* `BaseChart.AddSerie(SerieType type, string serieName = null, bool show = true)`:添加一个系列到系列列表中。
|
||||
* `BaseChart.AddData(string serieName, float data, string dataName = null)`:添加一个数据到指定的系列中。
|
||||
* `BaseChart.AddData(int serieIndex, float data, string dataName = null)`:添加一个数据到指定的系列中。
|
||||
* `BaseChart.AddData(string serieName, List<float> multidimensionalData, string dataName = null)`:添加多维数据`(x,y,z...)`到指定的系列中。
|
||||
* `BaseChart.AddData(int serieIndex, List<float> multidimensionalData, string dataName = null)`:添加多维数据`(x,y,z...)`到指定的系列中。
|
||||
* `BaseChart.AddData(string serieName, float xValue, float yValue, string dataName)`:添加`(x,y)`数据到指定系列中。
|
||||
* `BaseChart.AddData(int serieIndex, float xValue, float yValue, string dataName = null)`:添加`(x,y)`数据到指定系列中。
|
||||
* `BaseChart.UpdateData(string serieName,int dataIndex, float value)`:更新指定系列中的指定索引数据。
|
||||
* `BaseChart.UpdateData(int serieIndex,int dataIndex, float value)`:更新指定系列中的指定索引数据。
|
||||
* `BaseChart.UpdateDataName(string serieName,int dataIndex, string dataName)`:更新指定系列中的指定索引数据名称。
|
||||
* `BaseChart.UpdateDataName(int serieIndex, int dataIndex, string dataName)`:更新指定系列中的指定索引数据名称。
|
||||
* `BaseChart.SetActive(string serieName, bool active)`:设置指定系列是否显示。
|
||||
* `BaseChart.SetActive(int serieIndex, bool active)`:设置指定系列是否显示。
|
||||
* `BaseChart.IsActive(string serieName)`:获取指定系列是否显示。
|
||||
* `BaseChart.IsActive(int serieIndex)`:获取指定系列是否显示。
|
||||
* `BaseChart.IsActiveByLegend(string legendName)`:获得指定图例名字的系列是否显示。
|
||||
* `BaseChart.RefreshChart()`:在下一帧刷新图表。
|
||||
* `BaseChart.RefreshLabel()`:在下一帧刷新文本标签。
|
||||
* `BaseChart.UpdateTheme(Theme theme)`:切换图表主题。
|
||||
* `BaseChart.AnimationEnable(bool flag)`:启用或关闭起始动画。
|
||||
* `BaseChart.AnimationStart()`:开始初始动画。
|
||||
* `BaseChart.AnimationStop()`:停止初始化动画。
|
||||
* `BaseChart.AnimationReset()`:重置初始动画,重新播放。
|
||||
* `BaseChart.ClickLegendButton(int legendIndex, string legendName, bool show)`:点击图例按钮。
|
||||
|
||||
## `CoordinateChart`
|
||||
|
||||
---
|
||||
|
||||
* `CoordinateChart.grid`:网格组件 `Grid`。
|
||||
* `CoordinateChart.xAxises`:左右两个 `X` 轴组件 `XAxis`。
|
||||
* `CoordinateChart.yAxises`:左右两个 `Y` 轴组件 `YAxis`。
|
||||
* `CoordianteChart.xAxis0`:X轴(下)。
|
||||
* `CoordianteChart.xAxis1`:X轴(上)。
|
||||
* `CoordianteChart.xAxis0`:Y轴(左)。
|
||||
* `CoordianteChart.yAxis1`:Y轴(右)。
|
||||
* `CoordinateChart.dataZoom`:区域缩放组件 `DataZoom`。
|
||||
* `CoordinateChart.coordinateX`:坐标系的左下角坐标 `X`。
|
||||
* `CoordinateChart.coordinateY`:坐标系的左下角坐标 `Y`。
|
||||
* `CoordinateChart.coordinateWidth`:坐标系的宽。
|
||||
* `CoordinateChart.coordinateHeight`:坐标系的高。
|
||||
* `CoordinateChart.ClearAxisData()`:清除所有x轴和y轴的类目数据。
|
||||
* `CoordinateChart.AddXAxisData(string category, int xAxisIndex = 0)`:添加一个类目数据到指定的 `X` 轴。
|
||||
* `CoordinateChart.AddYAxisData(string category, int yAxisIndex = 0)`:添加一个类目数据到指定的 `Y` 轴。
|
||||
* `CoordinateChart.IsValue()`:是否是纯数值坐标。
|
||||
* `CoordinateChart.RefreshDataZoom()`:在下一帧刷新DataZoom组件。
|
||||
* `CoordinateChart.RefreshAxisMinMaxValue()`:立即刷新数值坐标轴的最大最小值(更新坐标轴标签并触发重绘)。
|
||||
|
||||
## `LineChart`
|
||||
|
||||
---
|
||||
|
||||
* 继承 `BaseChart`。
|
||||
* 继承自 `CoordinateChart`。
|
||||
|
||||
## `BarChart`
|
||||
|
||||
---
|
||||
|
||||
* 继承自 `BaseChart`。
|
||||
* 继承自 `CoordinateChart`。
|
||||
|
||||
## `PieChart`
|
||||
|
||||
---
|
||||
|
||||
* 继承自 `BaseChart`。
|
||||
|
||||
## `RadarChart`
|
||||
|
||||
---
|
||||
|
||||
* 继承自 `BaseChart`。
|
||||
* `radars`:雷达组件列表 `Radar`。
|
||||
|
||||
## `ScatterChart`
|
||||
|
||||
---
|
||||
|
||||
* 继承自 `BaseChart`。
|
||||
* 继承自 `CoordinateChart`。
|
||||
|
||||
## `HeatmapChart`
|
||||
|
||||
---
|
||||
|
||||
* 继承自 `BaseChart`。
|
||||
* 继承自 `CoordinateChart`。
|
||||
|
||||
[返回首页](https://github.com/monitor1394/unity-ugui-XCharts)
|
||||
[XCharts配置项手册](XCharts配置项手册.md)
|
||||
[XCharts问答](XCharts问答.md)
|
||||
7
Assets/XCharts/Documentation/XChartsAPI.md.meta
Normal file
7
Assets/XCharts/Documentation/XChartsAPI.md.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 81071e0166b9e49958800af4678e69ae
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
624
Assets/XCharts/Documentation/XCharts配置项手册.md
Normal file
624
Assets/XCharts/Documentation/XCharts配置项手册.md
Normal file
@@ -0,0 +1,624 @@
|
||||
# 配置项手册
|
||||
|
||||
[返回首页](https://github.com/monitor1394/unity-ugui-XCharts)
|
||||
[XChartsAPI接口](XChartsAPI.md)
|
||||
[XCharts问答](XCharts问答.md)
|
||||
|
||||
主组件:
|
||||
|
||||
* [Axis 坐标轴](#XAxis)
|
||||
* [DataZoom 区域缩放](#DataZoom)
|
||||
* [Grid 网格](#Grid)
|
||||
* [Legend 图例](#Legend)
|
||||
* [Series 系列](#Series)
|
||||
* [Settings 设置](#Settings)
|
||||
* [Theme 主题](#Theme)
|
||||
* [Tooltip 提示框](#Tooltip)
|
||||
* [Title 标题](#Title)
|
||||
* [VisualMap 视觉映射](#VisualMap)
|
||||
|
||||
子组件:
|
||||
|
||||
* [AreaStyle 区域填充样式](#AreaStyle)
|
||||
* [AxisLabel 坐标轴刻度标签](#AxisLabel)
|
||||
* [AxisLine 坐标轴轴线](#AxisLine)
|
||||
* [AxisName 坐标轴名称](#AxisName)
|
||||
* [AxisSplitArea 坐标轴分割区域](#AxisSplitArea)
|
||||
* [AxisTick 坐标轴刻度](#AxisTick)
|
||||
* [Emphasis 高亮样式](#Emphasis)
|
||||
* [ItemStyle 图形样式](#ItemStyle)
|
||||
* [LineArrow 折线图箭头](#LineArrow)
|
||||
* [LineStyle 折线图样式](#LineStyle)
|
||||
* [Location 位置](#Location)
|
||||
* [SerieAnimation 动画](#SerieAnimation)
|
||||
* [SerieData 数据项](#SerieData)
|
||||
* [SerieLabel 图形上的文本标签](#SerieLabel)
|
||||
* [SerieSymbol 图形标记](#SerieSymbol)
|
||||
|
||||
## `Theme`
|
||||
|
||||
---
|
||||
主题组件。主题用来配置图表的全局配色等其他参数。
|
||||
|
||||
相关参数:
|
||||
|
||||
* `theme`:内置主题类型。有`Default`、`Light`、`Dark`三种可选内置主题。
|
||||
* `font`:所有文字的通用字体。
|
||||
* `backgroundColor`:图表背景颜色。
|
||||
* `titleTextColor`:主题的主标题文字颜色。
|
||||
* `titleSubTextColor`:主题的副标题文字颜色。
|
||||
* `legendTextColor`:图例的激活时文字颜色。
|
||||
* `legendUnableColor`:图例的非激活时文字颜色。
|
||||
* `axisTextColor`:坐标轴的文字颜色。
|
||||
* `axisLineColor`:坐标轴的轴线颜色。
|
||||
* `axisSplitLineColor`:坐标轴的分割线颜色,默认和轴线颜色一致。
|
||||
* `tooltipBackgroundColor`:提示框的背景颜色。
|
||||
* `tooltipFlagAreaColor`:提示框的阴影指示器的颜色。
|
||||
* `tooltipTextColor`:提示框的文字颜色。
|
||||
* `tooltipLabelColor`:提示框的十字指示器坐标轴标签的背景颜色。
|
||||
* `tooltipLineColor`:提示框的指示线的颜色。
|
||||
* `dataZoomTextColor`:区域缩放的文字颜色。
|
||||
* `dataZoomLineColor`:区域缩放的线条颜色。
|
||||
* `dataZoomSelectedColor`:区域缩放的选中区域颜色。
|
||||
* `colorPalette`:调色盘颜色列表。如果系列没有设置颜色,则会依次循环从该列表中取颜色作为系列颜色。
|
||||
|
||||
相关接口:
|
||||
|
||||
* `GetColor(int index)`:获得调色盘对应系列索引的颜色值。
|
||||
* `GetColorStr(int index)`:获得指定系列索引的十六进制颜色值字符串。
|
||||
* `GetColor(string hexColorStr)`:将字符串颜色值转成Color。
|
||||
|
||||
## `Title`
|
||||
|
||||
---
|
||||
标题组件,包含主标题和副标题。
|
||||
|
||||
相关参数:
|
||||
|
||||
* `show`:是否显示标题组件。
|
||||
* `text`:主标题文本,支持使用 `\n` 换行。
|
||||
* `textFontSize`:主标题文字的字体大小。
|
||||
* `subText`:副标题文本,支持使用 `\n` 换行。
|
||||
* `subTextFontSize`:副标题文字的字体大小。
|
||||
* `itemGap`:主副标题之间的间距。
|
||||
* `location`:标题显示位置 [Location](#Location)。
|
||||
|
||||
## `Legend`
|
||||
|
||||
---
|
||||
图例组件。图例组件展现了不同系列的标记,颜色和名字。可以通过点击图例控制哪些系列不显示。
|
||||
|
||||
相关参数:
|
||||
|
||||
* `show`:是否显示图例组件。
|
||||
* `selectedMode`:选择模式。控制是否可以通过点击图例改变系列的显示状态。默认开启图例选择,可以设成 `None` 关闭。有以下三种选择方式:
|
||||
* `Multiple`:多选。
|
||||
* `Single`:单选。
|
||||
* `None`:无法选择。
|
||||
* `orient`:布局方式是横还是竖。
|
||||
* `Horizonal`:水平。
|
||||
* `Vertical`:垂直。
|
||||
* `location`:图例的显示位置 [Location](#Location)。
|
||||
* `itemWidth`:每个图例项的宽度。
|
||||
* `itemHeight`:每个图例项的高度。
|
||||
* `itemGap`:图例每项之间的间隔。横向布局时为水平间隔,纵向布局时为纵向间隔。
|
||||
* `itemFontSize`:图例项的字体大小。
|
||||
* `formatter`:图例内容字符串模版格式器。支持用 `\n` 换行。模板变量为图例名称 `{name}`
|
||||
* `data`:图例的数据数组。数组项通常为一个字符串,每一项代表一个系列的 `name`(如果是饼图,也可以是饼图单个数据的 `name`)。如果 `data` 没有被指定,会自动从当前系列中获取。指定 `data` 时里面的数据项和 `serie` 匹配时才会生效。
|
||||
|
||||
相关接口:
|
||||
|
||||
* `ClearData()`:清空数据。
|
||||
* `ContainsData(string name)`:是否包括指定名字的图例。
|
||||
* `RemoveData(string name)`:移除指定名字的图例。
|
||||
* `AddData(string name)`:添加图例项。
|
||||
* `GetData(int index)`:获得指定索引的图例。
|
||||
* `GetIndex(string legendName)`:获得指定图例的索引。
|
||||
|
||||
## `Tooltip`
|
||||
|
||||
---
|
||||
|
||||
提示框组件。
|
||||
|
||||
相关参数:
|
||||
|
||||
* `show`:是否显示提示框组件。
|
||||
* `type`:提示框指示器类型。指示器类型有:
|
||||
* `Line`:线性指示器。
|
||||
* `Shadow`:阴影指示器。
|
||||
* `None`:无指示器。
|
||||
* `Corss`:十字准星指示器。坐标轴显示Label和交叉线。
|
||||
* `formatter`:提示框内容字符串模版格式器。支持用 `\n` 或 `<br/>` 换行。其中变量 `{a}`, `{b}`, `{c}`, `{d}` 在不同图表类型下代表数据含义为:
|
||||
* 折线(区域)图、柱状(条形)图、K线图 : `{a}`(系列名称),`{b}`(类目值),`{c}`(数值), `{d}`(无)。
|
||||
* 散点图(气泡)图 : `{a}`(系列名称),`{b}`(数据名称),`{c}`(数值数组), `{d}`(无)。
|
||||
* 地图 : `{a}`(系列名称),`{b}`(区域名称),`{c}`(合并数值), `{d}`(无)。
|
||||
* 饼图、仪表盘、漏斗图: `{a}`(系列名称),`{b}`(数据项名称),`{c}`(数值), `{d}`(百分比)。
|
||||
* `fixedWidth`:固定宽度。当同时设置 `fixedWidth` 和 `minWidth` 时,`fixedWidth` 比 `minWidth` 优先级高。
|
||||
* `fixedHeight`:固定高度。当同时设置 `fixedHeight` 和 `minHeight` 时,`fixedHeight` 比 `minHeight` 优先级高。
|
||||
* `minWidth`:最小宽度。当同时设置 `fixedWidth` 和 `minWidth` 时,`fixedWidth` 比 `minWidth` 优先级高。
|
||||
* `minHeight`:最小高度。当同时设置 f`ixedHeight` 和 `minHeight` 时,`fixedHeight` 比 `minHeight` 优先级高。
|
||||
* `fontSize`:文字的字体大小。
|
||||
* `fontStyle`:文字的字体风格。
|
||||
* `forceENotation`:是否强制使用科学计数法格式化显示数值。默认为false,当小数精度大于3时才采用科学计数法。
|
||||
|
||||
## `DataZoom`
|
||||
|
||||
---
|
||||
|
||||
区域缩放组件。用于区域缩放,从而能自由关注细节的数据信息,或者概览数据整体,或者去除离群点的影响。
|
||||
目前只支持控制 `X` 轴。
|
||||
|
||||
相关参数:
|
||||
|
||||
* `enable`:开启或关闭缩放区域功能。
|
||||
* `supportInside`:是否支持内置缩放。内置于坐标系中,可在坐标系上通过鼠标拖拽、鼠标滚轮、手指滑动(触屏上)来缩放或漫游坐标系。
|
||||
* `supportSlider`:是否支持滑动条缩放。有单独的滑动条,可在滑动条上进行缩放或漫游。
|
||||
* ~~`filterMode`:数据过滤,暂未启用。支持以下几种类型:~~
|
||||
* ~~`Filter`:当前数据窗口外的数据,被 过滤掉。即 会 影响其他轴的数据范围。每个数据项,只要有一个维度在数据窗口外,整个数据项就会被过滤掉。~~
|
||||
* ~~`WeakFilter`:当前数据窗口外的数据,被 过滤掉。即 会 影响其他轴的数据范围。每个数据项,只有当全部维度都在数据窗口同侧外部,整个数据项才会被过滤掉。~~
|
||||
* ~~`Empty`:当前数据窗口外的数据,被 设置为空。即 不会 影响其他轴的数据范围。~~
|
||||
* ~~`None`:不过滤数据,只改变数轴范围。~~
|
||||
* ~~`xAxisIndex`:控制哪一个 `x` 轴。~~
|
||||
* ~~`yAxisIndex`:控制哪一个 `y` 轴。~~
|
||||
* `showDataShadow`:是否显示数据阴影。数据阴影可以简单地反应数据走势。
|
||||
* `showDetail`:是否显示 `detail`,即拖拽时候显示详细数值信息。
|
||||
* `zoomLock`:是否锁定选择区域(或叫做数据窗口)的大小。如果设置为 `true` 则锁定选择区域的大小,也就是说,只能平移,不能缩放。
|
||||
* ~~`realtime`:拖动时,是否实时更新系列的视图。如果设置为 `false`,则只在拖拽结束的时候更新。~~
|
||||
* ~~`backgroundColor`:组件的背景颜色。~~
|
||||
* `bottom`:组件离容器下侧的距离。
|
||||
* `height`:组件高度。
|
||||
* `rangeMode`:取值类型是取绝对值还是百分比。
|
||||
* `Percent`:百分比。
|
||||
* `start`:数据窗口范围的起始百分比。范围是:0 ~ 100。
|
||||
* `end`:数据窗口范围的结束百分比。范围是:0 ~ 100。
|
||||
* `scrollSensitivity`:缩放区域组件的敏感度。值越高每次缩放所代表的数据越多。
|
||||
* `fontSize`:字体大小。
|
||||
* `fontStyle`:字体样式。
|
||||
|
||||
## `VisualMap`
|
||||
|
||||
---
|
||||
|
||||
视觉映射组件。用于进行『视觉编码』,也就是将数据映射到视觉元素(视觉通道)。
|
||||
|
||||
* `enable`:开启或关闭视觉映射功能。
|
||||
* `show`:是否显示组件。如果设置为 false,不会显示,但是数据映射的功能还存在。
|
||||
* `type`:组件类型。支持以下类型:
|
||||
* `Continuous`:连续型。
|
||||
* ~~`Piecewise`:分段型。~~
|
||||
* ~~`selectedMode`:分段型的选择模式,支持以下模式:~~
|
||||
* ~~`Multiple`:多选。~~
|
||||
* ~~`Single`:单选。~~
|
||||
* `min`:允许的最小值。'min' 必须用户指定。[visualMap.min, visualMap.max] 形成了视觉映射的『定义域』。
|
||||
* `max`:允许的最大值。'max' 必须用户指定。[visualMap.min, visualMax.max] 形成了视觉映射的『定义域』。
|
||||
* `range`:指定手柄对应数值的位置。range 应在 min max 范围内。
|
||||
* ~~`text`:两端的文本,如 ['High', 'Low']。~~
|
||||
* ~~`textGap`:两端文字主体之间的距离,单位为px。~~
|
||||
* `splitNumber`:对于连续型数据,自动平均切分成几段,默认为0时自动匹配inRange颜色列表大小。
|
||||
* `calculable`:是否显示拖拽用的手柄(手柄能拖拽调整选中范围)。
|
||||
* ~~`realtime`:拖拽时,是否实时更新。~~
|
||||
* `itemWidth`:图形的宽度,即颜色条的宽度。
|
||||
* `itemHeight`:图形的高度,即颜色条的高度。
|
||||
* `borderWidth`:边框线宽,单位px。
|
||||
* `dimension`:指定用数据的『哪个维度』,映射到视觉元素上。『数据』即 series.data。从1开始,默认为0取 data 中最后一个维度。
|
||||
* `hoverLink`:打开 hoverLink 功能时,鼠标悬浮到 visualMap 组件上时,鼠标位置对应的数值 在 图表中对应的图形元素,会高亮。
|
||||
* `orient`:布局方式是横还是竖。
|
||||
* `location`:组件显示在图表中的位置。
|
||||
* `inRange`:定义 在选中范围中 的视觉颜色。
|
||||
* ~~`outOfRange`:定义 在选中范围外 的视觉颜色。~~
|
||||
|
||||
## `Grid`
|
||||
|
||||
---
|
||||
|
||||
网格组件。直角坐标系内绘图网格,单个 `grid` 内最多可以放置上下两个 `X` 轴,左右两个 `Y` 轴。可以在网格上绘制折线图,柱状图,散点图(气泡图)。目前最多只能存在一个 `grid` 组件。
|
||||
|
||||
相关参数:
|
||||
|
||||
* `show`:是否显示直角坐标系网格组件。
|
||||
* `left`:组件离容器左侧的距离。
|
||||
* `right`:组件离容器右侧的距离。
|
||||
* `top`:组件离容器顶部的距离。
|
||||
* `bottom`:组件离容器底部的距离。
|
||||
* `backgroundColor`:背景颜色。
|
||||
|
||||
## `XAxis`
|
||||
|
||||
---
|
||||
|
||||
直角坐标系 `grid` 中的 `X` 轴。单个 `grid` 组件最多只能放上下两个 `X` 轴。两个 `X` 轴存储在 `xAxises` 中。
|
||||
|
||||
相关参数:
|
||||
|
||||
* `show`:是否显示 `X` 轴。默认 `xAxises[0]` 为 `true`,`xAxises[1]` 为 `false`。
|
||||
* `type`:坐标轴类型。默认为 `Category`。有以下两种类型:
|
||||
* `Value`:数值轴,用于连续数据。
|
||||
* `Category`:类目轴,适用于离散的类目数据,为该类型时必须通过 `data` 设置类目数据。
|
||||
* `minMaxType`:坐标轴刻度最大最小值显示类型。默认为 `Default`。有以下三种类型:
|
||||
* `Default`:0-最大值。
|
||||
* `MinMax`:最小值-最大值。
|
||||
* `Custom`:自定义的最小值-最大值。
|
||||
* `min`:设定的坐标轴刻度最小值,当 `minMaxType` 为 `Custom` 时有效。
|
||||
* `max`:设定的坐标轴刻度最大值,当 `minMaxType` 为 `Custom` 时有效。
|
||||
* `splitNumber`:坐标轴的分割段数。默认为 `5`。当 `splitNumber` 设为 `0` 时,表示绘制所有的类目数据。
|
||||
* `interval`:强制设置坐标轴分割间隔。无法在类目轴中使用。设置改值时 `splitNumber` 无效。
|
||||
* `splitLineType`:分割线类型。默认为 `Dashed`。有以下五种类型:
|
||||
* `None`:不显示分割线。
|
||||
* `Solid`:实线。
|
||||
* `Dashed`:虚线。
|
||||
* `Dotted`:点线。
|
||||
* `DashDot`:点划线。
|
||||
* `DashDotDot`:双点划线。
|
||||
* `boundaryGap`:坐标轴两边是否留白。默认为 `true`。
|
||||
* `maxCache`:类目数据中可缓存的最大数据量。默认为0没有限制,大于0时超过指定值会移除旧数据再插入新数据。
|
||||
* `data`:类目数据,在类目轴(`type: 'Category'`)中有效。
|
||||
* `axisLine`:坐标轴轴线相关配置 [AxisLine](#AxisLine)。
|
||||
* `axisName`:坐标轴名称相关配置 [AxisName](#AxisName)。
|
||||
* `axisTick`:坐标轴刻度相关配置 [AxisTick](#AxisTick)。
|
||||
* `axisLabel`:坐标轴刻度标签 [AxisLabel](#AxisLabel)。
|
||||
* `splitArea`:坐标轴轴线坐标轴分割区域 [SplitArea](#SplitArea)。
|
||||
|
||||
相关接口:
|
||||
|
||||
* `ClearData()`:清空类目数据。
|
||||
* `IsCategory()`:是否为类目轴。
|
||||
* `IsValue()`:是否为数值轴。
|
||||
* `AddData(string category, int maxDataNumber)`:添加一个类目到类目数据列表。
|
||||
|
||||
## `YAxis`
|
||||
|
||||
---
|
||||
|
||||
直角坐标系 `grid` 中的 `Y` 轴。单个 `grid` 组件最多只能放左右两个 `Y` 轴。两个 `Y` 轴存储在 `yAxises` 中。
|
||||
|
||||
相关参数:
|
||||
|
||||
* `show`:是否显示 `Y` 轴。默认 `yAxises[0]` 为 `true`,`yAxises[1]` 为 `false`。
|
||||
* `type`:坐标轴类型。默认为 `Value`。有以下两种类型:
|
||||
* `Value`:数值轴,用于连续数据。
|
||||
* `Category`:类目轴,适用于离散的类目数据,为该类型时必须通过 `data` 设置类目数据。
|
||||
* `minMaxType`:坐标轴刻度最大最小值显示类型。默认为 `Default`。有以下三种类型:
|
||||
* `Default`:0-最大值。
|
||||
* `MinMax`:最小值-最大值。
|
||||
* `Custom`:自定义的最小值-最大值。
|
||||
* `min`:设定的坐标轴刻度最小值,当 `minMaxType` 为 `Custom` 时有效。
|
||||
* `max`:设定的坐标轴刻度最大值,当 `minMaxType` 为 `Custom` 时有效。
|
||||
* `splitNumber`:坐标轴的分割段数。默认为 `5`。
|
||||
* `interval`:强制设置坐标轴分割间隔。无法在类目轴中使用。设置改值时 `splitNumber` 无效。
|
||||
* `splitLineType`:分割线类型。默认为 `Dashed`。支持以下五种类型:
|
||||
* `None`:不显示分割线。
|
||||
* `Solid`:实线。
|
||||
* `Dashed`:虚线。
|
||||
* `Dotted`:点线。
|
||||
* `DashDot`:点划线。
|
||||
* `DashDotDot`:双点划线。
|
||||
* `boundaryGap`:坐标轴两边是否留白。默认为 `false`。
|
||||
* `data`:类目数据,在类目轴(`type: 'Category'`)中有效。
|
||||
* `axisLine`:坐标轴轴线相关配置 [AxisLine](#AxisLine)。
|
||||
* `axisName`:坐标轴名称相关配置 [AxisName](#AxisName)。
|
||||
* `axisTick`:坐标轴刻度相关配置 [AxisTick](#AxisTick)。
|
||||
* `axisLabel`:坐标轴刻度标签 [AxisLabel](#AxisLabel)。
|
||||
* `splitArea`:坐标轴轴线坐标轴分割区域 [SplitArea](#SplitArea)。
|
||||
|
||||
相关接口:
|
||||
|
||||
* `ClearData()`:清空类目数据。
|
||||
* `IsCategory()`:是否为类目轴。
|
||||
* `IsValue()`:是否为数值轴。
|
||||
* `AddData(string category, int maxDataNumber)`:添加一个类目到类目数据列表。
|
||||
|
||||
## `Series`
|
||||
|
||||
---
|
||||
|
||||
系列列表。每个系列通过 type 决定自己的图表类型。
|
||||
|
||||
相关参数:
|
||||
|
||||
* `show`:系列是否显示在图表上。
|
||||
* `type`:系列的图表类型。有以下几种类型:
|
||||
* `Line`:折线图。
|
||||
* `Bar`:柱状图。
|
||||
* `Pie`:饼图。
|
||||
* `Radar`:雷达图。
|
||||
* `Scatter`:散点图。
|
||||
* `EffectScatter`:带有涟漪特效动画的散点图。
|
||||
* `name`:系列名称。用于 `tooltip` 的显示,`legend` 的图例筛选。
|
||||
* `stack`:数据堆叠。同个类目轴上系列配置相同的 `stack` 值后,后一个系列的值会在前一个系列的值上相加。
|
||||
* `axisIndex`:使用的坐标轴轴的 `index`,在单个图表实例中存在多个坐标轴轴的时候有用。
|
||||
* `radarIndex`:雷达图所使用的 `radar` 组件的 `index`。
|
||||
* `minShow`:系列显示数据的最小索引。
|
||||
* `maxShow`:系列显示数据的最大索引。
|
||||
* `maxCache`:系列中可缓存的最大数据量。默认为`0`没有限制,大于0时超过指定值会移除旧数据再插入新数据。
|
||||
* `sampleDist`采样的最小水平像素距离,默认为`0`时不采样。当两个数据点间的水平像素距离小于该值时,开启采样,保证两点间的水平像素距离不小于该值。
|
||||
* `sampleType`:采样类型。当`sampleDist`大于`0`时有效。支持以下五种采样类型:
|
||||
* `Peak`:取峰值。当过滤点的平均值大于等于`sampleAverage`时,取最大值;反之取最小值。
|
||||
* `Average`:取过滤点的平均值。
|
||||
* `Max`:取过滤点的最大值。
|
||||
* `Min`:取过滤点的最小值。
|
||||
* `Sum`:取过滤点之和。
|
||||
* `sampleAverage`:设定的采样平均值。当 `sampleType` 为 `Peak` 时,用于和过滤数据的平均值做对比是取最大值还是最小值。默认为`0`时会实时计算所有数据的平均值。
|
||||
* `areaStyle`:区域填充样式 [AreaStyle](#AreaStyle)。
|
||||
* `symbol`:标记的图形 [SerieSymbol](#SerieSymbol)。
|
||||
* `lineType`:折线图样式类型。支持以下十种类型:
|
||||
* `Normal`:普通折线图。
|
||||
* `Smooth`:平滑曲线。
|
||||
* `SmoothDash`:平滑虚线。
|
||||
* `StepStart`:阶梯线图:当前点。
|
||||
* `StepMiddle`:阶梯线图:当前点和下一个点的中间。
|
||||
* `StepEnd`:阶梯线图:下一个拐点。
|
||||
* `Dash`:虚线。
|
||||
* `Dot`:点线。
|
||||
* `DashDot`:点划线。
|
||||
* `DashDotDot`:双点划线。
|
||||
* `lineStyle`:线条样式 [LineStyle](#LineStyle)。
|
||||
* `barType`:柱状图类型。以下几种类型:
|
||||
* `Normal`:普通柱状图。
|
||||
* `Zebra`:斑马柱状图。
|
||||
* `Capsule`:胶囊柱状图。
|
||||
* `barPercentStack`:是否百分比堆叠柱状图,相同 `stack` 的 `serie` 只要有一个 `barPercentStack` 为 `true`,则就显示成百分比堆叠柱状图。
|
||||
* `barWidth`:柱条的宽度,不设时自适应。支持设置成相对于类目宽度的百分比。
|
||||
* `barGap`:不同系列的柱间距离。为百分比(如 `'0.3f'`,表示柱子宽度的 `30%`)。如果想要两个系列的柱子重叠,可以设置 `barGap` 为 `'-1f'`。这在用柱子做背景的时候有用。在同一坐标系上,此属性会被多个 `'bar'` 系列共享。此属性应设置于此坐标系中最后一个 `'bar'` 系列上才会生效,并且是对此坐标系中所有 `'bar'` 系列生效。
|
||||
* `barCategoryGap`:同一系列的柱间距离,默认为类目间距的20%,可设固定值。在同一坐标系上,此属性会被多个 `'bar'` 系列共享。此属性应设置于此坐标系中最后一个 `'bar'` 系列上才会生效,并且是对此坐标系中所有 `'bar'` 系列生效。
|
||||
* `barZebraWidth`:斑马线的粗细。`barType` 为 `Zebra` 时有效。
|
||||
* `barZebraGap`:斑马线的间距。`barType` 为 `Zebra` 时有效。
|
||||
* `pieClickOffset`:鼠标点击时是否开启偏移,一般用在PieChart图表中。
|
||||
* `pieRoseType`:是否展示成南丁格尔图,通过半径区分数据大小。
|
||||
* `pieSpace`:饼图项间的空隙留白。
|
||||
* `pieCenter`:饼图的中心点。
|
||||
* `pieRadius`:饼图的半径。`radius[0]` 表示内径,`radius[1]` 表示外径。
|
||||
* `label`:图形上的文本标签 [SerieLabel](#SerieLabel),可用于说明图形的一些数据信息,比如值,名称等。
|
||||
* `emphasis`:高亮样式 [Emphasis](#Emphasis)。
|
||||
* `animation`:起始动画 [SerieAnimation](#SerieAnimation)。
|
||||
* `lineArrow`:折线图的箭头 [LineArrow](#LineArrow)。
|
||||
* `data`:系列中的数据项 [SerieData](#SerieData) 数组,可以设置`1`到`n`维数据。
|
||||
|
||||
相关接口:
|
||||
|
||||
## `Settings`
|
||||
|
||||
---
|
||||
|
||||
全局参数设置组件。一般情况下可使用默认值,当有需要时可进行调整。
|
||||
|
||||
* `lineSmoothStyle`:曲线平滑系数。通过调整平滑系数可以改变曲线的曲率,得到外观稍微有变化的不同曲线。
|
||||
* `lineSmoothness`:曲线平滑度。值越小曲线越平滑,但顶点数也会随之增加。当开启有渐变的区域填充时,数值越大渐变过渡效果越差。
|
||||
* `lineSegmentDistance`: 线段的分割距离。普通折线图的线是由很多线段组成,段数由该数值决定。值越小段数越多,但顶点数也会随之增加。当开启有渐变的区域填充时,数值越大渐变过渡效果越差。
|
||||
* `cicleSmoothness`:圆形(包括扇形、环形等)的平滑度。数越小圆越平滑,但顶点数也会随之增加。
|
||||
|
||||
## `Animation`
|
||||
|
||||
---
|
||||
|
||||
* `enable`:是否开起始画效果。
|
||||
* `easing`:动画的缓动效果。支持以下动画效果:
|
||||
* `Linear`:线性效果。
|
||||
* `duration`:设定的动画时长,单位毫秒。
|
||||
* `threshold`:是否开启动画的阈值,当单个系列显示的图形数量大于这个阈值时会关闭动画。
|
||||
* `delay`:动画延时,单位毫秒。
|
||||
|
||||
## `AreaStyle`
|
||||
|
||||
---
|
||||
|
||||
* `show`:是否显示区域填充。
|
||||
* `origin`:区域填充的起始位置 `AreaOrigin`。有以下三种填充方式:
|
||||
* `Auto`:填充坐标轴轴线到数据间的区域。
|
||||
* `Start`:填充坐标轴底部到数据间的区域。
|
||||
* `End`:填充坐标轴顶部到数据间的区域。
|
||||
* `color`:区域填充的颜色,默认取 `serie` 对应的颜色。如果 `toColor` 不是默认值,则表示渐变色的起点颜色。
|
||||
* `toColor`:区域填充的渐变色的终点颜色。
|
||||
* `highlightColor`:高亮时区域填充的颜色,默认取 `serie` 对应的颜色。如果 `highlightToColor` 不是默认值,则表示渐变色的起点颜色。
|
||||
* `highlightToColor`:高亮时区域填充的渐变色的终点颜色。
|
||||
* `opacity`:图形透明度。支持从 0 到 1 的数字,为 0 时不绘制该图形。
|
||||
* `tooltipHighlight`:鼠标悬浮时是否高亮之前的区域。
|
||||
|
||||
## `AxisLabel`
|
||||
|
||||
---
|
||||
|
||||
* `show`:是否显示刻度标签。
|
||||
* `interval`:坐标轴刻度标签的显示间隔,在类目轴中有效。0表示显示所有标签,1表示隔一个隔显示一个标签,以此类推。
|
||||
* `inside`:刻度标签是否朝内,默认朝外。
|
||||
* `rotate`:刻度标签旋转的角度,在类目轴的类目标签显示不下的时候可以通过旋转防止标签之间重叠。
|
||||
* `margin`:刻度标签与轴线之间的距离。
|
||||
* `color`:刻度标签文字的颜色,默认取主题Theme的axisTextColor。
|
||||
* `fontSize`:文字的字体大小。
|
||||
* `fontStyle`:文字字体的风格。
|
||||
* `formatter`:图例内容字符串模版格式器。支持用 \n 换行。模板变量为图例名称 {value},{value:f1} 表示取1为小数
|
||||
* `forceENotation`:是否强制使用科学计数法格式化显示数值。默认为false,当小数精度大于3时才采用科学计数法。
|
||||
|
||||
## `AxisLine`
|
||||
|
||||
---
|
||||
|
||||
* `show`:是否显示坐标轴轴线。
|
||||
* `onZero`:X 轴或者 Y 轴的轴线是否在另一个轴的 0 刻度上,只有在另一个轴为数值轴且包含 0 刻度时有效。
|
||||
* `width`:坐标轴线线宽。
|
||||
* `symbol`:是否显示箭头。
|
||||
* `symbolWidth`:箭头宽。
|
||||
* `symbolHeight`:箭头高。
|
||||
* `symbolOffset`:箭头偏移。
|
||||
* `symbolDent`:箭头的凹陷程度。
|
||||
|
||||
## `AxisName`
|
||||
|
||||
---
|
||||
|
||||
* `show`:是否显示坐标名称。
|
||||
* `name`:坐标轴名称。
|
||||
* `location`:坐标轴名称的位置。支持以下类型:
|
||||
* `Start`:坐标轴起始处。
|
||||
* `Middle`:坐标轴中间。
|
||||
* `End`:坐标轴末端。
|
||||
* `offset`:坐标轴名称与轴线之间的偏移。
|
||||
* `rotate`:坐标轴名字旋转,角度值。
|
||||
* `color`:坐标轴名称的文字颜色。
|
||||
* `fontSize`:坐标轴名称的文字大小。
|
||||
* `fontStyle`:坐标轴名称的文字风格。
|
||||
|
||||
## `AxisSplitArea`
|
||||
|
||||
---
|
||||
|
||||
* `show`:是否显示坐标分割区域。
|
||||
* `color`:分隔区域颜色。分隔区域会按数组中颜色的顺序依次循环设置颜色。默认是一个深浅的间隔色。
|
||||
|
||||
## `AxisTick`
|
||||
|
||||
---
|
||||
|
||||
* `show`:是否显示坐标轴刻度。
|
||||
* `alignWithLabel`:类目轴中在 boundaryGap 为 true 的时候有效,可以保证刻度线和标签对齐。
|
||||
* `inside`:坐标轴刻度是否朝内,默认朝外。
|
||||
* `length`:坐标轴刻度的长度。
|
||||
|
||||
## `Emphasis`
|
||||
|
||||
---
|
||||
|
||||
* `show`:是否启用高亮样式。
|
||||
* `label`:图形文本标签样式 [SerieLabel](#SerieLabel)。
|
||||
* `itemStyle`:图形样式 [ItemStyle](#ItemStyle)。
|
||||
|
||||
## `ItemStyle`
|
||||
|
||||
---
|
||||
|
||||
* `show`:是否启用。
|
||||
* `color`:颜色。
|
||||
* `borderType`:边框的类型。
|
||||
* `borderColor`:边框的颜色。
|
||||
* `borderWidth`:边框宽。
|
||||
* `borderWidth`:opacity。
|
||||
|
||||
## `LineArrow`
|
||||
|
||||
---
|
||||
|
||||
* `show`:是否显示箭头。
|
||||
* `position`:箭头显示位置。支持以下两种位置:
|
||||
* `End`:末端显示。最后一个数据上显示箭头。
|
||||
* `Start`:起始端显示。第一个数据上显示箭头。
|
||||
* `width`:箭头宽。
|
||||
* `height`:箭头长。
|
||||
* `offset`:箭头偏移。默认箭头的中心点和数据坐标点一致,可通过 `offset` 调整偏移。
|
||||
* `dent`:箭头的凹度。
|
||||
|
||||
## `LineStyle`
|
||||
|
||||
---
|
||||
|
||||
* `show`:是否显示线条。在折线图中无效。
|
||||
* `type`:线条类型。支持以下五种类型:
|
||||
* `None`:不显示分割线。
|
||||
* `Solid`:实线。
|
||||
* `Dashed`:虚线。
|
||||
* `Dotted`:点线。
|
||||
* `DashDot`:点划线。
|
||||
* `DashDotDot`:双点划线。
|
||||
* `color`:线条颜色。默认和 `serie` 一致。
|
||||
* `width`:线条宽。
|
||||
* `opacity`:线条的透明度。支持从 0 到 1 的数字,为 0 时不绘制该图形。
|
||||
|
||||
## `Location`
|
||||
|
||||
---
|
||||
|
||||
* `align`:对齐方式。有以下对齐方式。
|
||||
* `TopLeft`:左上角对齐。
|
||||
* `TopRight`:右上角对齐。
|
||||
* `TopCenter`:置顶居中对齐。
|
||||
* `BottomLeft`:左下对齐。
|
||||
* `BottomRight`:右下对齐。
|
||||
* `BottomCenter`:底部居中对齐。
|
||||
* `Center`:居中对齐。
|
||||
* `CenterLeft`:中部靠左对齐。
|
||||
* `CenterRight`:中部靠右对齐。
|
||||
* `left`:离容器左侧的距离。
|
||||
* `right`:离容器右侧的距离。
|
||||
* `top`:离容器上侧的距离。
|
||||
* `bottom`:离容器下侧的距离。
|
||||
|
||||
## `SerieData`
|
||||
|
||||
---
|
||||
|
||||
* `name`:数据项名称。
|
||||
* `selected`:该数据项是否被选中。
|
||||
* `radius`:自定义半径。可用在饼图中自定义某个数据项的半径。
|
||||
* `showIcon`:是否显示图标。
|
||||
* `iconImage`:图标的图片。
|
||||
* `iconColor`:图标颜色。
|
||||
* `iconWidth`:图标宽。
|
||||
* `iconHeight`:图标高。
|
||||
* `iconOffset`:图标偏移。
|
||||
|
||||
## `SerieLabel`
|
||||
|
||||
---
|
||||
|
||||
* `show`:是否显示文本标签。
|
||||
* `position`:标签的位置。折线图时强制默认为 `Center`,支持以下 `5` 种位置:
|
||||
* `Outside`:饼图扇区外侧,通过视觉引导线连到相应的扇区。只在饼图种可用。
|
||||
* `Inside`:饼图扇区内部。只在饼图可用。
|
||||
* `Center`:在中心位置(折线图,柱状图,饼图)。
|
||||
* `Top`:顶部(柱状图)。
|
||||
* `Bottom`:底部(柱状图)。
|
||||
* `formatter`:标签内容字符串模版格式器。支持用 `\n` 换行。模板变量有:`{a}`:系列名;`{b}`:数据名;`{c}`:数据值;`{d}`:百分比。示例:`{b}:{c:f1}`。
|
||||
* `offset`:距离图形元素的偏移。
|
||||
* `color`:自定义文字颜色,默认和系列的颜色一致。
|
||||
* `backgroundColor`:标签的背景色,默认无颜色。
|
||||
* `backgroundWidth`:标签的背景宽度。一般不用指定,不指定时则自动是文字的宽度。
|
||||
* `backgroundHeight`:标签的背景高度。一般不用指定,不指定时则自动是文字的高度。
|
||||
* `rotate`:标签的旋转。
|
||||
* `paddingLeftRight`:标签文字和边框的左右边距。
|
||||
* `paddingTopBottom`:标签文字和边框的上下边距。
|
||||
* `fontSize`:标签文字的字体大小。
|
||||
* `fontStyle`:标签文字的字体风格。
|
||||
* `line`:是否显示视觉引导线。在 `label` 位置 设置为 `'Outside'` 的时候会显示视觉引导线。
|
||||
* `lineType`:视觉引导线类型。支持以下几种类型:
|
||||
* `BrokenLine`:折线。
|
||||
* `Curves`:曲线。
|
||||
* `HorizontalLine`:水平线。
|
||||
* `lineColor`:视觉引导线自定义颜色。
|
||||
* `lineWidth`:视觉引导线的宽度。
|
||||
* `lineLength1`:视觉引导线第一段的长度。
|
||||
* `lineLength2`:视觉引导线第二段的长度。
|
||||
* `border`:是否显示边框。
|
||||
* `borderWidth`:边框宽度。
|
||||
* `borderColor`:边框颜色。
|
||||
* `forceENotation`:是否强制使用科学计数法格式化显示数值。默认为false,当小数精度大于3时才采用科学计数法。
|
||||
|
||||
## `SerieSymbol`
|
||||
|
||||
---
|
||||
|
||||
* `type`:标记类型。支持以下六种类型:
|
||||
* `EmptyCircle`:空心圆。
|
||||
* `Circle`:实心圆。
|
||||
* `Rect`:正方形。
|
||||
* `Triangle`:三角形。
|
||||
* `Diamond`:菱形。
|
||||
* `None`:不显示标记。
|
||||
* `sizeType`:标记图形的大小获取方式。支持以下三种类型:
|
||||
* `Custom`:自定义大小。
|
||||
* `FromData`:通过 `dataIndex` 从数据中获取,再乘以一个比例系数 `dataScale` 。
|
||||
* `Callback`:通过回调函数 `sizeCallback` 获取。
|
||||
* `size`:标记的大小。
|
||||
* `selectedSize`:被选中的标记的大小。
|
||||
* `dataIndex`:当 `sizeType` 指定为 `FromData` 时,指定的数据源索引。
|
||||
* `dataScale`:当 `sizeType` 指定为 `FromData` 时,指定的倍数系数。
|
||||
* `selectedDataScale`:当 `sizeType` 指定为 `FromData` 时,指定的高亮倍数系数。
|
||||
* `sizeCallback`:当 `sizeType` 指定为 `Callback` 时,指定的回调函数。
|
||||
* `selectedSizeCallback`:当 `sizeType` 指定为 `Callback` 时,指定的高亮回调函数。
|
||||
* `color`:标记图形的颜色,默认和系列一致。
|
||||
* `opacity`:图形标记的透明度。
|
||||
* `startIndex`:开始显示图形标记的索引。
|
||||
* `interval`:显示图形标记的间隔。0表示显示所有标签,1表示隔一个隔显示一个标签,以此类推。
|
||||
* `forceShowLast`:是否强制显示最后一个图形标记。默认为 `false`。
|
||||
|
||||
[返回首页](https://github.com/monitor1394/unity-ugui-XCharts)
|
||||
[XChartsAPI接口](XChartsAPI.md)
|
||||
[XCharts问答](XCharts问答.md)
|
||||
7
Assets/XCharts/Documentation/XCharts配置项手册.md.meta
Normal file
7
Assets/XCharts/Documentation/XCharts配置项手册.md.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f74b65f3be5d64689a5db6bdbc91df3e
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
125
Assets/XCharts/Documentation/XCharts问答.md
Normal file
125
Assets/XCharts/Documentation/XCharts问答.md
Normal file
@@ -0,0 +1,125 @@
|
||||
# XCharts问答
|
||||
|
||||
[返回首页](https://github.com/monitor1394/unity-ugui-XCharts)
|
||||
[XChartsAPI接口](XChartsAPI.md)
|
||||
[XCharts配置项手册](XCharts配置项手册.md)
|
||||
|
||||
[QA 1:如何调整坐标轴与背景的边距?](#如何调整坐标轴与背景的边距)
|
||||
[QA 2:如何让初始动画重新播放?](#如何让初始动画重新播放)
|
||||
[QA 3:如何自定义折线图、饼图等数据项的颜色?](#如何自定义折线图、饼图等数据项的颜色)
|
||||
[QA 4:如何格式化文字,如我想给坐标轴标签加上单位?](#如何格式化文字,如我想给坐标轴标签加上单位)
|
||||
[QA 5:如何让柱形图的柱子堆叠显示?](#如何让柱形图的柱子堆叠显示)
|
||||
[QA 6:如何让柱形图的柱子同柱但不重叠?](#如何让柱形图的柱子同柱但不重叠)
|
||||
[QA 7:如何调整柱形图的柱子宽度和间距?](#如何调整柱形图的柱子宽度和间距)
|
||||
[QA 8:如何调整柱形图单个柱子的颜色?](#如何调整柱形图单个柱子的颜色)
|
||||
[QA 9:如何调整图表的对齐方式?](#如何调整图表的对齐方式)
|
||||
[QA 10:可以显示超过1000以上的大数据吗?](#可以显示超过1000以上的大数据吗)
|
||||
[QA 11:折线图可以画虚线、点线、点划线吗?](#折线图可以画虚线、点线、点划线吗)
|
||||
[QA 12:如何限定Y轴(Value轴)的值范围?](#如何限定Y轴(Value轴)的值范围)
|
||||
[QA 13:如何自定义数值轴刻度大小?](#如何自定义数值轴刻度大小)
|
||||
[QA 14:如何在数据项顶上显示文本?](#如何在数据项顶上显示文本)
|
||||
[QA 15:如何给数据项自定义图标?](#如何给数据项自定义图标)
|
||||
[QA 16:锯齿太严重,如何让图表更顺滑?](#锯齿太严重,如何让图表更顺滑)
|
||||
[QA 17:为什么鼠标移上图表Tooltip不显示?](#为什么鼠标移上图表`Tooltip`不显示)
|
||||
[QA 18:如何取消Tooltip的竖线?](#如何取消`Tooltip`的竖线)
|
||||
[QA 19:如何让Y轴(数值轴)显示多位小数?](#如何让Y轴(数值轴)显示多位小数)
|
||||
[QA 20:如何用代码动态更新数据?](#如何用代码动态更新数据)
|
||||
[QA 21:如何显示图例?](#如何显示图例)
|
||||
[QA 22:如何做成预设?](#如何做成预设)
|
||||
[QA 23:如何在图表上画点画线等自定义内容?](#如何在图表上画点画线等自定义内容)
|
||||
|
||||
## 如何调整坐标轴与背景的边距
|
||||
|
||||
答:`Grid`组件,可调整上下左右边距。
|
||||
|
||||
## 如何让初始动画重新播放
|
||||
|
||||
答:调用`AnimationReset()`接口。
|
||||
|
||||
## 如何自定义折线图、饼图等数据项的颜色
|
||||
|
||||
答:通过`Theme`的`colorPalette`调整,或者部分`Serie`下的`LineStyle`和`ItemStyle`。
|
||||
|
||||
## 如何格式化文字,如我想给坐标轴标签加上单位
|
||||
|
||||
答:通过`formatter`参数,在`Legend`、`Axis`的`AxisLabel`、`Tooltop`、`Serie`的`Label`都提供改参数的配置。
|
||||
|
||||
## 如何让柱形图的柱子堆叠显示
|
||||
|
||||
答:设置`Serie`下的`stack`,`stack`相同的`serie`会堆叠显示在一个柱子上。
|
||||
|
||||
## 如何让柱形图的柱子同柱但不重叠
|
||||
|
||||
答:设置`Serie`下的`barGap`为`-1`,`stack`为空。
|
||||
|
||||
## 如何调整柱形图的柱子宽度和间距
|
||||
|
||||
答:调整`Serie`下的`barWidth`和`barGap`,多个`serie`时最后一个`serie`的`barWidth`和`barGap`有效。
|
||||
|
||||
## 如何调整柱形图单个柱子的颜色
|
||||
|
||||
答:目前暂不支持调整单子柱子的颜色,但可以通过两个`serie`同柱不堆叠来实现,通过设置数据项为`0`来达到类似效果。
|
||||
|
||||
## 如何调整图表的对齐方式
|
||||
|
||||
答:默认为左下角对齐,暂不支持调整。可以通过包一层parent来辅助控制。
|
||||
|
||||
## 可以显示超过1000以上的大数据吗
|
||||
|
||||
答:可以。但`UGUI`对单个`Graphic`限制`65000`个顶点,所以太多的数据不一定能显示完全。可通过设置采样距离`sampleDist`开启采样简化过密曲线。也可以通过设置一些参数来减少图表的顶点数有助于显示更多数据。如缩小图表的尺寸,关闭或减少坐标轴的客户端绘制,关闭`Serie`的`symbol`和`label`显示等。折线图的普通线图`Normal`比平滑线图`Smooth`占用顶点数更少。
|
||||
|
||||
## 折线图可以画虚线、点线、点划线吗
|
||||
|
||||
答:可以。通过`Serie`下的`lineType`选择线条样式。当要显示的数据过多(成千以上)数据间过密时建议使用`Normal`或者`Step`样式。
|
||||
|
||||
## 如何限定Y轴(Value轴)的值范围
|
||||
|
||||
答:设置`Axis`下的`minMaxType`为`Custom`,自定义`min`和`max`。
|
||||
|
||||
## 如何自定义数值轴刻度大小
|
||||
|
||||
答:默认时通过`Axis`下的`splitNumer`进行自动划分。也可以设置`interval`自定义刻度大小。
|
||||
|
||||
## 如何在数据项顶上显示文本
|
||||
|
||||
答:通过设置`Serie`下的`Label`。
|
||||
|
||||
## 如何给数据项自定义图标
|
||||
|
||||
答:通过设置`Serie`的`data`下的数据项可单独设置`icon`相关参数。
|
||||
|
||||
## 锯齿太严重,如何让图表更顺滑
|
||||
|
||||
答:开启抗锯齿设置。调整UI渲染模式为Camera模式,开启MSAA,设置4倍或更高抗锯齿。锯齿只能减少难以避免,像素越高锯齿越不明显。
|
||||
|
||||
## 为什么鼠标移上图表`Tooltip`不显示
|
||||
|
||||
答:确认`Tooltip`是否开启。确认父节点是否关闭了鼠标事件。
|
||||
|
||||
## 如何取消`Tooltip`的竖线
|
||||
|
||||
答:设置`Tooltip`的`type`为`None`。
|
||||
|
||||
## 如何让Y轴(数值轴)显示多位小数
|
||||
|
||||
答:设置`Axis`下的`AxisLabel`中的`formatter`为`{value:f1}`或`{value:f2}`
|
||||
|
||||
## 如何用代码动态更新数据
|
||||
|
||||
答:请查阅`Demo`下的代码,`Demo10_LineSimple.cs`就是一个简单添加数据构建折线图的例子,其他`Demo`也都是通过代码控制不同的组件实现不同的功能。
|
||||
|
||||
## 如何显示图例
|
||||
|
||||
答:首先,你的`serie`里的`name`需有值不为空。然后开启`Legend`显示,里面的`data`可以默认为空,表示显示所有的图例。如果你只想显示部分`serie`的图例,在`data`中填入要显示的图例即可。
|
||||
|
||||
## 如何做成预设
|
||||
|
||||
答:请删除chart下所有的子组件再拖成预设。
|
||||
|
||||
## 如何在图表上画点画线等自定义内容
|
||||
|
||||
答:xcharts有自定义绘制回调`customDrawCallback`,具体可参考`Demo12_CustomDrawing.cs`
|
||||
|
||||
[返回首页](https://github.com/monitor1394/unity-ugui-XCharts)
|
||||
[XChartsAPI接口](XChartsAPI.md)
|
||||
[XCharts配置项手册](XCharts配置项手册.md)
|
||||
7
Assets/XCharts/Documentation/XCharts问答.md.meta
Normal file
7
Assets/XCharts/Documentation/XCharts问答.md.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9a4780a4fbaf446cc9d948b6b2c803d6
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,8 +1,6 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0ed45d2c9978fbf4aac0915d767f8853
|
||||
guid: 98b750952a34c427693ac70f09008bae
|
||||
folderAsset: yes
|
||||
timeCreated: 1554216875
|
||||
licenseType: Free
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
@@ -1,4 +1,11 @@
|
||||
using UnityEditor;
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
|
||||
using UnityEditor;
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
@@ -9,13 +16,10 @@ namespace XCharts
|
||||
[CustomEditor(typeof(BarChart), false)]
|
||||
public class BarChartEditor : CoordinateChartEditor
|
||||
{
|
||||
protected SerializedProperty m_Bar;
|
||||
|
||||
protected override void OnEnable()
|
||||
{
|
||||
base.OnEnable();
|
||||
m_Target = (BarChart)target;
|
||||
m_Bar = serializedObject.FindProperty("m_Bar");
|
||||
}
|
||||
|
||||
protected override void OnEndInspectorGUI()
|
||||
@@ -25,7 +29,6 @@ namespace XCharts
|
||||
{
|
||||
return;
|
||||
}
|
||||
EditorGUILayout.PropertyField(m_Bar, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,11 @@
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
|
||||
using UnityEditor;
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
@@ -20,16 +26,12 @@ namespace XCharts
|
||||
protected SerializedProperty m_Legend;
|
||||
protected SerializedProperty m_Tooltip;
|
||||
protected SerializedProperty m_Series;
|
||||
|
||||
protected SerializedProperty m_Settings;
|
||||
protected SerializedProperty m_Large;
|
||||
protected SerializedProperty m_MinShowDataNumber;
|
||||
protected SerializedProperty m_MaxShowDataNumber;
|
||||
protected SerializedProperty m_MaxCacheDataNumber;
|
||||
|
||||
protected float m_DefaultLabelWidth;
|
||||
protected float m_DefaultFieldWidth;
|
||||
private int m_SeriesSize;
|
||||
private bool m_BaseModuleToggle = false;
|
||||
|
||||
protected virtual void OnEnable()
|
||||
{
|
||||
@@ -45,9 +47,7 @@ namespace XCharts
|
||||
m_Series = serializedObject.FindProperty("m_Series");
|
||||
|
||||
m_Large = serializedObject.FindProperty("m_Large");
|
||||
m_MinShowDataNumber = serializedObject.FindProperty("m_MinShowDataNumber");
|
||||
m_MaxShowDataNumber = serializedObject.FindProperty("m_MaxShowDataNumber");
|
||||
m_MaxCacheDataNumber = serializedObject.FindProperty("m_MaxCacheDataNumber");
|
||||
m_Settings = serializedObject.FindProperty("m_Settings");
|
||||
}
|
||||
|
||||
public override void OnInspectorGUI()
|
||||
@@ -82,22 +82,7 @@ namespace XCharts
|
||||
protected virtual void OnMiddleInspectorGUI()
|
||||
{
|
||||
EditorGUILayout.PropertyField(m_Series, true);
|
||||
m_BaseModuleToggle = EditorGUILayout.Foldout(m_BaseModuleToggle,
|
||||
new GUIContent("Base", "基础配置"),
|
||||
ChartEditorHelper.foldoutStyle);
|
||||
if (m_BaseModuleToggle)
|
||||
{
|
||||
EditorGUI.indentLevel++;
|
||||
var largeTip = "Whether to enable the optimization of large-scale graph. \n是否启用大规模线图的优化,在数据图形特别多的时候(>=5k)可以开启。";
|
||||
EditorGUILayout.PropertyField(m_Large, new GUIContent("Large", largeTip));
|
||||
EditorGUILayout.PropertyField(m_MinShowDataNumber, true);
|
||||
EditorGUILayout.PropertyField(m_MaxShowDataNumber, true);
|
||||
EditorGUILayout.PropertyField(m_MaxCacheDataNumber, true);
|
||||
if (m_MinShowDataNumber.intValue < 0) m_MinShowDataNumber.intValue = 0;
|
||||
if (m_MaxShowDataNumber.intValue < 0) m_MaxShowDataNumber.intValue = 0;
|
||||
if (m_MaxCacheDataNumber.intValue < 0) m_MaxCacheDataNumber.intValue = 0;
|
||||
EditorGUI.indentLevel--;
|
||||
}
|
||||
EditorGUILayout.PropertyField(m_Settings, true);
|
||||
}
|
||||
|
||||
protected virtual void OnEndInspectorGUI()
|
||||
79
Assets/XCharts/Editor/CheckVersionEditor.cs
Normal file
79
Assets/XCharts/Editor/CheckVersionEditor.cs
Normal file
@@ -0,0 +1,79 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
public class CheckVersionEditor : EditorWindow
|
||||
{
|
||||
private Vector2 scrollPos;
|
||||
private static CheckVersionEditor window;
|
||||
|
||||
[MenuItem("Component/XCharts/Check For Update")]
|
||||
private static void ShowWindow()
|
||||
{
|
||||
window = GetWindow<CheckVersionEditor>();
|
||||
window.titleContent = new GUIContent("XCharts Check For Update");
|
||||
window.minSize = new Vector2(550, window.minSize.y);
|
||||
window.Show();
|
||||
XChartsMgr.Instance.CheckVersion();
|
||||
}
|
||||
|
||||
private void OnGUI()
|
||||
{
|
||||
var mgr = XChartsMgr.Instance;
|
||||
GUILayout.Label("");
|
||||
GUILayout.Label("当前版本:" + mgr.nowVersion);
|
||||
if (mgr.needUpdate && !mgr.isCheck)
|
||||
{
|
||||
GUILayout.BeginHorizontal();
|
||||
GUILayout.Label("最新版本:" + mgr.newVersion);
|
||||
if (mgr.isCheck) GUILayout.Label("检测中...");
|
||||
else GUILayout.Label("有更新!");
|
||||
if (GUILayout.Button("去Github主页"))
|
||||
{
|
||||
Application.OpenURL("https://github.com/monitor1394/unity-ugui-XCharts");
|
||||
}
|
||||
GUILayout.EndHorizontal();
|
||||
|
||||
GUILayout.Label("");
|
||||
if (!string.IsNullOrEmpty(mgr.desc))
|
||||
{
|
||||
GUILayout.Label(mgr.desc);
|
||||
GUILayout.Label("");
|
||||
}
|
||||
|
||||
scrollPos = GUILayout.BeginScrollView(scrollPos);
|
||||
GUILayout.TextArea(mgr.changeLog);
|
||||
GUILayout.EndScrollView();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (mgr.isCheck) GUILayout.Label("最新版本:检测中...");
|
||||
else GUILayout.Label("最新版本:" + mgr.newVersion);
|
||||
|
||||
if (!mgr.needUpdate && !mgr.isCheck)
|
||||
{
|
||||
GUILayout.Label("");
|
||||
GUILayout.Label("已是最新版本!");
|
||||
GUILayout.Label("");
|
||||
if (!string.IsNullOrEmpty(mgr.desc))
|
||||
{
|
||||
GUILayout.Label(mgr.desc);
|
||||
GUILayout.Label("");
|
||||
}
|
||||
if (GUILayout.Button("去Github主页"))
|
||||
{
|
||||
Application.OpenURL(mgr.homepage);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
11
Assets/XCharts/Editor/CheckVersionEditor.cs.meta
Normal file
11
Assets/XCharts/Editor/CheckVersionEditor.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 98d1061c4167c4fff8ed25c3e8be8756
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,5 +1,11 @@
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
|
||||
using UnityEditor;
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
@@ -16,6 +22,7 @@ namespace XCharts
|
||||
protected SerializedProperty m_MultipleYAxis;
|
||||
protected SerializedProperty m_YAxises;
|
||||
protected SerializedProperty m_DataZoom;
|
||||
protected SerializedProperty m_VisualMap;
|
||||
|
||||
protected override void OnEnable()
|
||||
{
|
||||
@@ -25,12 +32,14 @@ namespace XCharts
|
||||
m_XAxises = serializedObject.FindProperty("m_XAxises");
|
||||
m_YAxises = serializedObject.FindProperty("m_YAxises");
|
||||
m_DataZoom = serializedObject.FindProperty("m_DataZoom");
|
||||
m_VisualMap = serializedObject.FindProperty("m_VisualMap");
|
||||
}
|
||||
|
||||
protected override void OnStartInspectorGUI()
|
||||
{
|
||||
base.OnStartInspectorGUI();
|
||||
EditorGUILayout.PropertyField(m_DataZoom);
|
||||
EditorGUILayout.PropertyField(m_VisualMap);
|
||||
EditorGUILayout.PropertyField(m_Grid);
|
||||
for (int i = 0; i < m_XAxises.arraySize; i++)
|
||||
{
|
||||
30
Assets/XCharts/Editor/HeatmapChartEditor.cs
Normal file
30
Assets/XCharts/Editor/HeatmapChartEditor.cs
Normal file
@@ -0,0 +1,30 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
|
||||
using UnityEditor;
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
/// <summary>
|
||||
/// Editor class used to edit UI HeatmapChart.
|
||||
/// </summary>
|
||||
|
||||
[CustomEditor(typeof(HeatmapChart), false)]
|
||||
public class HeatmapChartEditor : CoordinateChartEditor
|
||||
{
|
||||
protected override void OnEnable()
|
||||
{
|
||||
base.OnEnable();
|
||||
m_Target = (HeatmapChart)target;
|
||||
}
|
||||
|
||||
protected override void OnEndInspectorGUI()
|
||||
{
|
||||
base.OnEndInspectorGUI();
|
||||
}
|
||||
}
|
||||
}
|
||||
11
Assets/XCharts/Editor/HeatmapChartEditor.cs.meta
Normal file
11
Assets/XCharts/Editor/HeatmapChartEditor.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1144057dfc00f4572913a63ba5291dd7
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,4 +1,11 @@
|
||||
using UnityEditor;
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
|
||||
using UnityEditor;
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
@@ -9,19 +16,10 @@ namespace XCharts
|
||||
[CustomEditor(typeof(LineChart), false)]
|
||||
public class LineChartEditor : CoordinateChartEditor
|
||||
{
|
||||
protected SerializedProperty m_Line;
|
||||
|
||||
protected override void OnEnable()
|
||||
{
|
||||
base.OnEnable();
|
||||
m_Target = (LineChart)target;
|
||||
m_Line = serializedObject.FindProperty("m_Line");
|
||||
}
|
||||
|
||||
protected override void OnEndInspectorGUI()
|
||||
{
|
||||
base.OnEndInspectorGUI();
|
||||
EditorGUILayout.PropertyField(m_Line, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,11 @@
|
||||
using UnityEditor;
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
|
||||
using UnityEditor;
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
@@ -15,13 +22,11 @@ namespace XCharts
|
||||
{
|
||||
base.OnEnable();
|
||||
m_Target = (PieChart)target;
|
||||
m_Pie = serializedObject.FindProperty("m_Pie");
|
||||
}
|
||||
|
||||
protected override void OnEndInspectorGUI()
|
||||
{
|
||||
base.OnEndInspectorGUI();
|
||||
EditorGUILayout.PropertyField(m_Pie, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
67
Assets/XCharts/Editor/PropertyDrawers/AnimationDrawer.cs
Normal file
67
Assets/XCharts/Editor/PropertyDrawers/AnimationDrawer.cs
Normal file
@@ -0,0 +1,67 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
[CustomPropertyDrawer(typeof(SerieAnimation), true)]
|
||||
public class AnimationDrawer : PropertyDrawer
|
||||
{
|
||||
private Dictionary<string, bool> m_AnimationModuleToggle = new Dictionary<string, bool>();
|
||||
|
||||
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
Rect drawRect = pos;
|
||||
drawRect.height = EditorGUIUtility.singleLineHeight;
|
||||
|
||||
SerializedProperty m_Enable = prop.FindPropertyRelative("m_Enable");
|
||||
SerializedProperty m_Easting = prop.FindPropertyRelative("m_Easting");
|
||||
SerializedProperty m_Duration = prop.FindPropertyRelative("m_Duration");
|
||||
SerializedProperty m_Delay = prop.FindPropertyRelative("m_Delay");
|
||||
SerializedProperty m_Threshold = prop.FindPropertyRelative("m_Threshold");
|
||||
SerializedProperty m_ActualDuration = prop.FindPropertyRelative("m_ActualDuration");
|
||||
SerializedProperty m_CurrDetailProgress = prop.FindPropertyRelative("m_CurrDetailProgress");
|
||||
SerializedProperty m_DestDetailProgress = prop.FindPropertyRelative("m_DestDetailProgress");
|
||||
|
||||
ChartEditorHelper.MakeFoldout(ref drawRect, ref m_AnimationModuleToggle, prop, null, m_Enable, false);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
if (ChartEditorHelper.IsToggle(m_AnimationModuleToggle, prop))
|
||||
{
|
||||
++EditorGUI.indentLevel;
|
||||
EditorGUI.PropertyField(drawRect, m_Easting);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Duration);
|
||||
if (m_Duration.intValue < 0) m_Duration.intValue = 0;
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Delay);
|
||||
if (m_Delay.intValue < 0) m_Delay.intValue = 0;
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Threshold);
|
||||
if (m_Threshold.intValue < 0) m_Threshold.intValue = 0;
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.LabelField(drawRect, "CurrDetailProgress:" + m_CurrDetailProgress.floatValue);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.LabelField(drawRect, "DestDetailProgress:" + m_DestDetailProgress.floatValue);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.LabelField(drawRect, "Actual duration:" + m_ActualDuration.intValue + " ms");
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
}
|
||||
|
||||
public override float GetPropertyHeight(SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
if (ChartEditorHelper.IsToggle(m_AnimationModuleToggle, prop))
|
||||
return 8 * EditorGUIUtility.singleLineHeight + 7 * EditorGUIUtility.standardVerticalSpacing;
|
||||
else
|
||||
return 1 * EditorGUIUtility.singleLineHeight + 1 * EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 844042f92a581474ba0491427f3fd592
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,4 +1,11 @@
|
||||
using System.Collections.Generic;
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
@@ -17,7 +24,10 @@ namespace XCharts
|
||||
SerializedProperty m_Origin = prop.FindPropertyRelative("m_Origin");
|
||||
SerializedProperty m_Color = prop.FindPropertyRelative("m_Color");
|
||||
SerializedProperty m_ToColor = prop.FindPropertyRelative("m_ToColor");
|
||||
SerializedProperty m_HighlightColor = prop.FindPropertyRelative("m_HighlightColor");
|
||||
SerializedProperty m_HighlightToColor = prop.FindPropertyRelative("m_HighlightToColor");
|
||||
SerializedProperty m_Opacity = prop.FindPropertyRelative("m_Opacity");
|
||||
SerializedProperty m_TooltipHighlight = prop.FindPropertyRelative("m_TooltipHighlight");
|
||||
|
||||
ChartEditorHelper.MakeFoldout(ref drawRect, ref m_AreaStyleToggle, prop, "Area Style", show, false);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
@@ -30,8 +40,14 @@ namespace XCharts
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_ToColor);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_HighlightColor);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_HighlightToColor);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Opacity);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_TooltipHighlight);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
}
|
||||
@@ -41,7 +57,7 @@ namespace XCharts
|
||||
float height = 0;
|
||||
if (ChartEditorHelper.IsToggle(m_AreaStyleToggle, prop))
|
||||
{
|
||||
height += 5 * EditorGUIUtility.singleLineHeight + 4 * EditorGUIUtility.standardVerticalSpacing;
|
||||
height += 8 * EditorGUIUtility.singleLineHeight + 7 * EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1,4 +1,11 @@
|
||||
using System.Collections.Generic;
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
@@ -27,6 +34,7 @@ namespace XCharts
|
||||
SerializedProperty m_Show = prop.FindPropertyRelative("m_Show");
|
||||
SerializedProperty m_Type = prop.FindPropertyRelative("m_Type");
|
||||
SerializedProperty m_SplitNumber = prop.FindPropertyRelative("m_SplitNumber");
|
||||
SerializedProperty m_Interval = prop.FindPropertyRelative("m_Interval");
|
||||
SerializedProperty m_AxisLabel = prop.FindPropertyRelative("m_AxisLabel");
|
||||
SerializedProperty m_ShowSplitLine = prop.FindPropertyRelative("m_ShowSplitLine");
|
||||
SerializedProperty m_SplitLineType = prop.FindPropertyRelative("m_SplitLineType");
|
||||
@@ -74,6 +82,8 @@ namespace XCharts
|
||||
}
|
||||
EditorGUI.PropertyField(drawRect, m_SplitNumber);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Interval);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
if (m_ShowSplitLine.boolValue)
|
||||
{
|
||||
drawRect.width = EditorGUIUtility.labelWidth + 10;
|
||||
@@ -140,7 +150,7 @@ namespace XCharts
|
||||
SerializedProperty m_AxisLabel = prop.FindPropertyRelative("m_AxisLabel");
|
||||
SerializedProperty m_SplitArea = prop.FindPropertyRelative("m_SplitArea");
|
||||
float height = 0;
|
||||
height += 10 * EditorGUIUtility.singleLineHeight + 9 * EditorGUIUtility.standardVerticalSpacing;
|
||||
height += 11 * EditorGUIUtility.singleLineHeight + 10 * EditorGUIUtility.standardVerticalSpacing;
|
||||
Axis.AxisType type = (Axis.AxisType)m_Type.enumValueIndex;
|
||||
if (type == Axis.AxisType.Category)
|
||||
{
|
||||
@@ -148,7 +158,7 @@ namespace XCharts
|
||||
{
|
||||
SerializedProperty m_Data = prop.FindPropertyRelative("m_Data");
|
||||
int num = m_Data.arraySize + 2;
|
||||
if (num > 50) num = 13;
|
||||
if (num > 30) num = 14;
|
||||
height += num * EditorGUIUtility.singleLineHeight + (num - 1) * EditorGUIUtility.standardVerticalSpacing;
|
||||
height += EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
@@ -1,4 +1,11 @@
|
||||
using System.Collections.Generic;
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
@@ -14,6 +21,7 @@ namespace XCharts
|
||||
Rect drawRect = pos;
|
||||
drawRect.height = EditorGUIUtility.singleLineHeight;
|
||||
SerializedProperty show = prop.FindPropertyRelative("m_Show");
|
||||
SerializedProperty m_Formatter = prop.FindPropertyRelative("m_Formatter");
|
||||
SerializedProperty m_Inside = prop.FindPropertyRelative("m_Inside");
|
||||
SerializedProperty m_Interval = prop.FindPropertyRelative("m_Interval");
|
||||
SerializedProperty m_Rotate = prop.FindPropertyRelative("m_Rotate");
|
||||
@@ -21,10 +29,11 @@ namespace XCharts
|
||||
SerializedProperty m_Color = prop.FindPropertyRelative("m_Color");
|
||||
SerializedProperty m_FontSize = prop.FindPropertyRelative("m_FontSize");
|
||||
SerializedProperty m_FontStyle = prop.FindPropertyRelative("m_FontStyle");
|
||||
SerializedProperty m_ForceENotation = prop.FindPropertyRelative("m_ForceENotation");
|
||||
|
||||
ChartEditorHelper.MakeFoldout(ref drawRect, ref m_AxisLabelToggle,prop, "Axis Label", show, false);
|
||||
ChartEditorHelper.MakeFoldout(ref drawRect, ref m_AxisLabelToggle, prop, "Axis Label", show, false);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
if (ChartEditorHelper.IsToggle(m_AxisLabelToggle,prop))
|
||||
if (ChartEditorHelper.IsToggle(m_AxisLabelToggle, prop))
|
||||
{
|
||||
++EditorGUI.indentLevel;
|
||||
EditorGUI.PropertyField(drawRect, m_Inside);
|
||||
@@ -41,6 +50,10 @@ namespace XCharts
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_FontStyle);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Formatter);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_ForceENotation);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
}
|
||||
@@ -48,9 +61,9 @@ namespace XCharts
|
||||
public override float GetPropertyHeight(SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
float height = 0;
|
||||
if (ChartEditorHelper.IsToggle(m_AxisLabelToggle,prop))
|
||||
if (ChartEditorHelper.IsToggle(m_AxisLabelToggle, prop))
|
||||
{
|
||||
height += 7 * EditorGUIUtility.singleLineHeight + 6 * EditorGUIUtility.standardVerticalSpacing;
|
||||
height += 9 * EditorGUIUtility.singleLineHeight + 10 * EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
return height;
|
||||
}
|
||||
@@ -1,4 +1,11 @@
|
||||
using System.Collections.Generic;
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
@@ -15,6 +22,7 @@ namespace XCharts
|
||||
drawRect.height = EditorGUIUtility.singleLineHeight;
|
||||
SerializedProperty show = prop.FindPropertyRelative("m_Show");
|
||||
SerializedProperty m_OnZero = prop.FindPropertyRelative("m_OnZero");
|
||||
SerializedProperty m_Width = prop.FindPropertyRelative("m_Width");
|
||||
SerializedProperty m_Symbol = prop.FindPropertyRelative("m_Symbol");
|
||||
SerializedProperty m_SymbolWidth = prop.FindPropertyRelative("m_SymbolWidth");
|
||||
SerializedProperty m_SymbolHeight = prop.FindPropertyRelative("m_SymbolHeight");
|
||||
@@ -28,6 +36,8 @@ namespace XCharts
|
||||
++EditorGUI.indentLevel;
|
||||
EditorGUI.PropertyField(drawRect, m_OnZero);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Width);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Symbol);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_SymbolWidth);
|
||||
@@ -47,7 +57,7 @@ namespace XCharts
|
||||
float height = 0;
|
||||
if (ChartEditorHelper.IsToggle(m_AxisLineToggle,prop))
|
||||
{
|
||||
height += 6 * EditorGUIUtility.singleLineHeight + 7 * EditorGUIUtility.standardVerticalSpacing;
|
||||
height += 7 * EditorGUIUtility.singleLineHeight + 6 * EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
return height;
|
||||
}
|
||||
@@ -1,4 +1,11 @@
|
||||
using System.Collections.Generic;
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
@@ -16,7 +23,7 @@ namespace XCharts
|
||||
SerializedProperty show = prop.FindPropertyRelative("m_Show");
|
||||
SerializedProperty m_Name = prop.FindPropertyRelative("m_Name");
|
||||
SerializedProperty m_Location = prop.FindPropertyRelative("m_Location");
|
||||
SerializedProperty m_Gap = prop.FindPropertyRelative("m_Gap");
|
||||
SerializedProperty m_Offset = prop.FindPropertyRelative("m_Offset");
|
||||
SerializedProperty m_Rotate = prop.FindPropertyRelative("m_Rotate");
|
||||
SerializedProperty m_Color = prop.FindPropertyRelative("m_Color");
|
||||
SerializedProperty m_FontSize = prop.FindPropertyRelative("m_FontSize");
|
||||
@@ -31,8 +38,17 @@ namespace XCharts
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Location);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Gap);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Offset);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_Offset);
|
||||
// EditorGUI.LabelField(drawRect, "Offset");
|
||||
// var startX = drawRect.x + EditorGUIUtility.labelWidth - EditorGUI.indentLevel * 15;
|
||||
// var tempWidth = (pos.width - startX + 35) / 2;
|
||||
// var xRect = new Rect(startX, drawRect.y, tempWidth, drawRect.height);
|
||||
// var yRect = new Rect(xRect.x + tempWidth - 20, drawRect.y, tempWidth, drawRect.height);
|
||||
// var x = EditorGUI.FloatField(xRect, m_Offset.vector2Value.x);
|
||||
// var y = EditorGUI.FloatField(yRect, m_Offset.vector2Value.y);
|
||||
// m_Offset.vector2Value = new Vector2(x,y);
|
||||
// drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Rotate);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Color);
|
||||
@@ -1,4 +1,11 @@
|
||||
using System.Collections.Generic;
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
@@ -1,4 +1,11 @@
|
||||
using UnityEditor;
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace XCharts
|
||||
@@ -1,4 +1,11 @@
|
||||
using UnityEditor;
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace XCharts
|
||||
@@ -12,55 +19,68 @@ namespace XCharts
|
||||
{
|
||||
Rect drawRect = pos;
|
||||
drawRect.height = EditorGUIUtility.singleLineHeight;
|
||||
SerializedProperty show = prop.FindPropertyRelative("m_Show");
|
||||
SerializedProperty m_Type = prop.FindPropertyRelative("m_Type");
|
||||
SerializedProperty m_FilterMode = prop.FindPropertyRelative("m_FilterMode");
|
||||
SerializedProperty show = prop.FindPropertyRelative("m_Enable");
|
||||
//SerializedProperty m_FilterMode = prop.FindPropertyRelative("m_FilterMode");
|
||||
//SerializedProperty m_Orient = prop.FindPropertyRelative("m_Orient");
|
||||
SerializedProperty m_SupportInside = prop.FindPropertyRelative("m_SupportInside");
|
||||
SerializedProperty m_SupportSlider = prop.FindPropertyRelative("m_SupportSlider");
|
||||
//SerializedProperty m_SupportSelect = prop.FindPropertyRelative("m_SupportSelect");
|
||||
SerializedProperty m_ShowDataShadow = prop.FindPropertyRelative("m_ShowDataShadow");
|
||||
SerializedProperty m_ShowDetail = prop.FindPropertyRelative("m_ShowDetail");
|
||||
SerializedProperty m_ZoomLock = prop.FindPropertyRelative("m_ZoomLock");
|
||||
SerializedProperty m_Realtime = prop.FindPropertyRelative("m_Realtime");
|
||||
SerializedProperty m_BackgroundColor = prop.FindPropertyRelative("m_BackgroundColor");
|
||||
// SerializedProperty m_Realtime = prop.FindPropertyRelative("m_Realtime");
|
||||
// SerializedProperty m_BackgroundColor = prop.FindPropertyRelative("m_BackgroundColor");
|
||||
SerializedProperty m_Height = prop.FindPropertyRelative("m_Height");
|
||||
SerializedProperty m_Bottom = prop.FindPropertyRelative("m_Bottom");
|
||||
SerializedProperty m_RangeMode = prop.FindPropertyRelative("m_RangeMode");
|
||||
SerializedProperty m_Start = prop.FindPropertyRelative("m_Start");
|
||||
SerializedProperty m_End = prop.FindPropertyRelative("m_End");
|
||||
SerializedProperty m_ScrollSensitivity = prop.FindPropertyRelative("m_ScrollSensitivity");
|
||||
SerializedProperty m_FontSize = prop.FindPropertyRelative("m_FontSize");
|
||||
SerializedProperty m_FontStyle = prop.FindPropertyRelative("m_FontStyle");
|
||||
|
||||
ChartEditorHelper.MakeFoldout(ref drawRect, ref m_DataZoomModuleToggle, "DataZoom", show);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
if (m_DataZoomModuleToggle)
|
||||
{
|
||||
++EditorGUI.indentLevel;
|
||||
EditorGUI.PropertyField(drawRect, m_Type);
|
||||
EditorGUI.PropertyField(drawRect, m_SupportInside);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_FilterMode);
|
||||
EditorGUI.PropertyField(drawRect, m_SupportSlider);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
//EditorGUI.PropertyField(drawRect, m_Orient);
|
||||
if (m_SupportSlider.boolValue)
|
||||
{
|
||||
++EditorGUI.indentLevel;
|
||||
EditorGUI.PropertyField(drawRect, m_ShowDataShadow);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_ShowDetail);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_FontSize);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_FontStyle);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
// EditorGUI.PropertyField(drawRect, m_Realtime);
|
||||
// drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Height);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Bottom);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
//EditorGUI.PropertyField(drawRect, m_SupportSelect);
|
||||
//drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_ShowDataShadow);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_ShowDetail);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_ZoomLock);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Realtime);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_ScrollSensitivity);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_BackgroundColor);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Height);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Bottom);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_RangeMode);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Start);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_End);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
if (m_Start.floatValue < 0) m_Start.floatValue = 0;
|
||||
if (m_End.floatValue > 100) m_End.floatValue = 100;
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
}
|
||||
@@ -68,12 +88,14 @@ namespace XCharts
|
||||
public override float GetPropertyHeight(SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
float height = 0;
|
||||
int num = 1;
|
||||
if (m_DataZoomModuleToggle)
|
||||
{
|
||||
height += 13 * EditorGUIUtility.singleLineHeight + 12 * EditorGUIUtility.standardVerticalSpacing;
|
||||
num += 7;
|
||||
if (prop.FindPropertyRelative("m_SupportSlider").boolValue) num += 6;
|
||||
|
||||
}
|
||||
height += 1 * EditorGUIUtility.singleLineHeight + 1 * EditorGUIUtility.standardVerticalSpacing;
|
||||
height += num * EditorGUIUtility.singleLineHeight + (num - 1) * EditorGUIUtility.standardVerticalSpacing;
|
||||
return height;
|
||||
}
|
||||
}
|
||||
55
Assets/XCharts/Editor/PropertyDrawers/EmphasisStyleDrawer.cs
Normal file
55
Assets/XCharts/Editor/PropertyDrawers/EmphasisStyleDrawer.cs
Normal file
@@ -0,0 +1,55 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
[CustomPropertyDrawer(typeof(Emphasis), true)]
|
||||
public class EmphasisDrawer : PropertyDrawer
|
||||
{
|
||||
private Dictionary<string, bool> m_EmphasisToggle = new Dictionary<string, bool>();
|
||||
|
||||
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
Rect drawRect = pos;
|
||||
drawRect.height = EditorGUIUtility.singleLineHeight;
|
||||
SerializedProperty show = prop.FindPropertyRelative("m_Show");
|
||||
SerializedProperty m_Label = prop.FindPropertyRelative("m_Label");
|
||||
SerializedProperty m_ItemStyle = prop.FindPropertyRelative("m_ItemStyle");
|
||||
ChartEditorHelper.MakeFoldout(ref drawRect, ref m_EmphasisToggle, prop, "Emphasis", show, false);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
if (ChartEditorHelper.IsToggle(m_EmphasisToggle, prop))
|
||||
{
|
||||
++EditorGUI.indentLevel;
|
||||
EditorGUI.PropertyField(drawRect, m_Label);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_Label);
|
||||
EditorGUI.PropertyField(drawRect, m_ItemStyle);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_ItemStyle);
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
}
|
||||
|
||||
public override float GetPropertyHeight(SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
float height = 0;
|
||||
if (ChartEditorHelper.IsToggle(m_EmphasisToggle, prop))
|
||||
{
|
||||
height += 1 * EditorGUIUtility.singleLineHeight + 1 * EditorGUIUtility.standardVerticalSpacing;
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Label"));
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_ItemStyle"));
|
||||
}
|
||||
else
|
||||
{
|
||||
height += 1 * EditorGUIUtility.singleLineHeight + 1 * EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
return height;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7de9b5e4c5d474fdd88ebb89f0924305
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,4 +1,11 @@
|
||||
using UnityEditor;
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace XCharts
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user