XChart重构:共享数据模型快照、时间序列与多分辨率系列,伪3D散点图/雷达图接入共享数据
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c1cc66d669a3dbb40bbba6b3d2406cd0
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,34 @@
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
using XericUI.XChart;
|
||||
|
||||
namespace XericUI.XChart.Editor
|
||||
{
|
||||
[CustomEditor(typeof(XChartBase), true)]
|
||||
internal sealed class XChartBaseEditor : UnityEditor.Editor
|
||||
{
|
||||
private bool m_ShowData = true;
|
||||
private bool m_ShowAdvanced;
|
||||
|
||||
public override void OnInspectorGUI()
|
||||
{
|
||||
serializedObject.Update();
|
||||
DrawPropertiesExcluding(serializedObject, "m_Script", "m_DataModel", "m_ShowDebug", "m_HideAllTools");
|
||||
m_ShowData = EditorGUILayout.Foldout(m_ShowData, "数据", true);
|
||||
if (m_ShowData)
|
||||
{
|
||||
var model = ((XChartBase)target).DataModel;
|
||||
EditorGUILayout.LabelField("维度", model.Dimensions.Count.ToString());
|
||||
EditorGUILayout.LabelField("记录", model.Records.Count.ToString());
|
||||
EditorGUILayout.LabelField("版本", model.Version.ToString());
|
||||
}
|
||||
m_ShowAdvanced = EditorGUILayout.Foldout(m_ShowAdvanced, "高级", true);
|
||||
if (m_ShowAdvanced)
|
||||
{
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty("m_ShowDebug"));
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty("m_HideAllTools"));
|
||||
}
|
||||
serializedObject.ApplyModifiedProperties();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 817dbf21bd711f44391d88364b5f17c9
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,41 @@
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
using XericUI.XChart.Line;
|
||||
using XericUI.XChart.Pseudo3D;
|
||||
using XericUI.XChart.Radar;
|
||||
|
||||
namespace XericUI.XChart.Editor
|
||||
{
|
||||
internal static class XChartCreateMenu
|
||||
{
|
||||
[MenuItem("GameObject/Xeric/XChart/Line Chart", false, 10)]
|
||||
private static void CreateLineChart() => Create<XLineChart>("XLineChart");
|
||||
|
||||
[MenuItem("GameObject/Xeric/XChart/Radar Chart", false, 11)]
|
||||
private static void CreateRadarChart() => Create<XRadarChart>("XRadarChart");
|
||||
|
||||
[MenuItem("GameObject/Xeric/XChart/Pseudo3D Scatter Chart", false, 12)]
|
||||
private static void CreateScatterChart() => Create<XPseudo3DScatterChart>("XPseudo3DScatterChart");
|
||||
|
||||
private static void Create<T>(string name) where T : Component
|
||||
{
|
||||
Canvas canvas = Selection.activeTransform == null ? null : Selection.activeTransform.GetComponentInParent<Canvas>();
|
||||
if (canvas == null)
|
||||
{
|
||||
var canvasObject = new GameObject("Canvas", typeof(RectTransform), typeof(Canvas), typeof(CanvasScaler), typeof(GraphicRaycaster));
|
||||
canvas = canvasObject.GetComponent<Canvas>();
|
||||
canvas.renderMode = RenderMode.ScreenSpaceOverlay;
|
||||
Undo.RegisterCreatedObjectUndo(canvasObject, "Create Canvas");
|
||||
}
|
||||
var chart = new GameObject(name, typeof(RectTransform), typeof(T));
|
||||
var rect = chart.GetComponent<RectTransform>();
|
||||
rect.SetParent(canvas.transform, false);
|
||||
rect.anchorMin = rect.anchorMax = new Vector2(0.5f, 0.5f);
|
||||
rect.pivot = new Vector2(0.5f, 0.5f);
|
||||
rect.sizeDelta = new Vector2(600f, 360f);
|
||||
Undo.RegisterCreatedObjectUndo(chart, "Create XChart");
|
||||
Selection.activeGameObject = chart;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 814d9aefe4a62fc41ac80aea44c88ee5
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user