mirror of
https://github.com/XCharts-Team/XCharts.git
synced 2026-05-15 12:40:12 +00:00
119 lines
3.8 KiB
C#
119 lines
3.8 KiB
C#
/******************************************/
|
|
/* */
|
|
/* Copyright (c) 2018 monitor1394 */
|
|
/* https://github.com/monitor1394 */
|
|
/* */
|
|
/******************************************/
|
|
|
|
using UnityEditor;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
using UnityEngine.EventSystems;
|
|
|
|
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>();
|
|
var eventSystem = new GameObject();
|
|
eventSystem.name = "EventSystem";
|
|
eventSystem.AddComponent<EventSystem>();
|
|
eventSystem.AddComponent<StandaloneInputModule>();
|
|
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");
|
|
}
|
|
|
|
[MenuItem("GameObject/XCharts/GaugeChart", priority = 50)]
|
|
public static void AddGaugeChart()
|
|
{
|
|
AddChart<GaugeChart>("GaugeChart");
|
|
}
|
|
|
|
[MenuItem("GameObject/XCharts/RingChart", priority = 51)]
|
|
public static void AddRingChart()
|
|
{
|
|
AddChart<RingChart>("RingChart");
|
|
}
|
|
}
|
|
} |