增加Editor快捷添加图表

This commit is contained in:
monitor1394
2019-11-03 08:33:06 +08:00
parent 6b1fb386f1
commit fde0b3e242
6 changed files with 119 additions and 7 deletions

View File

@@ -1,6 +1,7 @@
# 更新日志
* (2019.11.03) 增加`Editor`快捷添加图表:`Hierarchy`试图下右键`XCharts->LineChart`
* (2019.10.31) 修复`prefab`预设制作报错的问题
* (2019.10.31) 增加访问主题组件API`BaseChart.themeInfo`
* (2019.10.26) 发布`v1.0.1`版本

View File

@@ -0,0 +1,102 @@
/******************************************/
/* */
/* Copyright (c) 2018 monitor1394 */
/* https://github.com/monitor1394 */
/* */
/******************************************/
using UnityEditor;
using UnityEngine;
using UnityEngine.UI;
namespace XCharts
{
public class XChartEditor : EditorWindow
{
private static Transform GetParent()
{
GameObject selectObj = Selection.activeGameObject;
if (selectObj == null)
{
var canvas = GameObject.FindObjectOfType<Canvas>();
if (canvas != null) return canvas.transform;
else
{
var canvasObject = new GameObject();
canvasObject.name = "Canvas";
canvas = canvasObject.AddComponent<Canvas>();
canvas.renderMode = RenderMode.ScreenSpaceOverlay;
canvasObject.AddComponent<CanvasScaler>();
canvasObject.AddComponent<GraphicRaycaster>();
return canvas.transform;
}
}
else
{
return selectObj.transform;
}
}
private static string GetName(Transform parent, string name)
{
if (parent.Find(name) == null) return name;
for (int i = 1; i <= 10; i++)
{
var newName = string.Format("{0} ({1})", name, i);
if (parent.Find(newName) == null)
{
return newName;
}
}
return name;
}
private static void AddChart<T>(string chartName) where T : BaseChart
{
var parent = GetParent();
if (parent == null) return;
var chart = new GameObject();
chart.name = GetName(parent, chartName);
chart.AddComponent<T>();
chart.transform.SetParent(parent);
chart.transform.localScale = Vector3.one;
chart.transform.localPosition = Vector3.zero;
}
[MenuItem("GameObject/XCharts/LineChart", priority = 44)]
public static void AddLineChart()
{
AddChart<LineChart>("LineChart");
}
[MenuItem("GameObject/XCharts/BarChart", priority = 45)]
public static void AddBarChart()
{
AddChart<BarChart>("BarChart");
}
[MenuItem("GameObject/XCharts/PieChart", priority = 46)]
public static void AddPieChart()
{
AddChart<PieChart>("PieChart");
}
[MenuItem("GameObject/XCharts/RadarChart", priority = 47)]
public static void AddRadarChart()
{
AddChart<RadarChart>("RadarChart");
}
[MenuItem("GameObject/XCharts/ScatterChart", priority = 48)]
public static void AddScatterChart()
{
AddChart<ScatterChart>("ScatterChart");
}
[MenuItem("GameObject/XCharts/HeatmapChart", priority = 49)]
public static void AddHeatmapChart()
{
AddChart<HeatmapChart>("HeatmapChart");
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 941beb76fdaa64a27a2df6561893157e
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

View File

@@ -28,9 +28,9 @@
---
新建场景或在已有场景的 `Canvas` 下添加一个名为 `line_chart` 的 `GameObject`。
选中 `line_chart`,通过菜单栏 `Component->XCharts->LineChart` 或者 `Inspector` 视图的 `Add Component` 添加 `LineChart` 脚本。设置 `line_chart` 的尺寸,一个简单的折线图出来了。
在`Hierarchy`试图下右键或菜单栏`GameObject`下拉:`XCharts->LineChart`
![linechart](screenshot/op_addchart.png)
即可快速创建一个简单的折线图出来
![linechart](screenshot/linechart.png)
在 `Inspector` 视图下可以调整各个组件的参数,`Game` 视图会实时反馈调整的效果。各个组件的详细参数说明可查阅[XCharts配置项手册](XCharts配置项手册.md)。
![inspcetor-desc](screenshot/inpsector-desc.png)
@@ -104,7 +104,6 @@ for (int i = 0; i < 10; i++)
完整代码请查阅`Demo``Demo10_LineSimple.cs`
你还可以用代码控制更多的参数,[XCharts配置项手册](XCharts配置项手册.md)里面的所有参数都是可以通过代码控制的。
[返回首页](https://github.com/monitor1394/unity-ugui-XCharts)
[XChartsAPI接口](XChartsAPI.md)
[XCharts配置项手册](XCharts配置项手册.md)

View File

@@ -114,9 +114,8 @@ XCharts的图表由组件和数据组成。不同的组件和数据可以组合
* 在Editor上快速创建一个图表
1. 在`Canvas`下通过`Create Empty`创建一个空`gameObject`,命名为 `line_chart`。
2. 通过菜单栏 `Component->XCharts->LineChart` 或者 `Inspector` 视图的 `Add Component` 添加 `LineChart` 脚本。一个简单的折线图就出来了
3. `Inspector` 视图下可以调整各个组件的参数,`Game` 视图会实时反馈调整的效果。各个组件的详细参数说明可查阅[XCharts配置项手册](https://github.com/monitor1394/unity-ugui-XCharts/blob/master/Assets/XCharts/Documentation/XCharts配置项手册.md)。
1. 在`Hierarchy`试图下右键或菜单栏`GameObject`下拉:`XCharts->LineChart`,即可快速创建一个简单的折线图出来
2. `Inspector` 视图下可以调整各个组件的参数,`Game` 视图会实时反馈调整的效果。各个组件的详细参数说明可查阅[XCharts配置项手册](https://github.com/monitor1394/unity-ugui-XCharts/blob/master/Assets/XCharts/Documentation/XCharts配置项手册.md)
* 更多的代码动态控制的例子请参考[教程5分钟上手XCharts](https://github.com/monitor1394/unity-ugui-XCharts/blob/master/Doc/教程5分钟上手XCharts.md) 。