diff --git a/Assets/XCharts/Demo/Editor.meta b/Assets/XCharts/Demo/Editor.meta index dcffc9b7..1896fb2f 100644 --- a/Assets/XCharts/Demo/Editor.meta +++ b/Assets/XCharts/Demo/Editor.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: cc28a4ebefb884f6ab7132e3910b7461 +guid: 05b7d15b7a92f4c1eb56dbf47522bf6c folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/XCharts/Demo/Editor/ChartModuleDrawer.cs b/Assets/XCharts/Demo/Editor/ChartModuleDrawer.cs index b8cfbf88..1a609b4a 100644 --- a/Assets/XCharts/Demo/Editor/ChartModuleDrawer.cs +++ b/Assets/XCharts/Demo/Editor/ChartModuleDrawer.cs @@ -1,4 +1,11 @@ -using UnityEditor; +/******************************************/ +/* */ +/* Copyright (c) 2018 monitor1394 */ +/* https://github.com/monitor1394 */ +/* */ +/******************************************/ + +using UnityEditor; using UnityEngine; namespace XCharts diff --git a/Assets/XCharts/Demo/Editor/ChartModuleDrawer.cs.meta b/Assets/XCharts/Demo/Editor/ChartModuleDrawer.cs.meta index 02bf09b5..df5c8c51 100644 --- a/Assets/XCharts/Demo/Editor/ChartModuleDrawer.cs.meta +++ b/Assets/XCharts/Demo/Editor/ChartModuleDrawer.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 97c0f1cf754c54fd1913ec5b4129c6e5 +guid: 2fbbaed3e670f478c844c1bdfc73d433 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/XCharts/Demo/Editor/DemoEditor.cs b/Assets/XCharts/Demo/Editor/DemoEditor.cs index 62d5fb30..f2928fc5 100644 --- a/Assets/XCharts/Demo/Editor/DemoEditor.cs +++ b/Assets/XCharts/Demo/Editor/DemoEditor.cs @@ -1,5 +1,12 @@ -using UnityEditor; -using UnityEngine; + +/******************************************/ +/* */ +/* Copyright (c) 2018 monitor1394 */ +/* https://github.com/monitor1394 */ +/* */ +/******************************************/ + +using UnityEditor; namespace XCharts { diff --git a/Assets/XCharts/Demo/Editor/DemoEditor.cs.meta b/Assets/XCharts/Demo/Editor/DemoEditor.cs.meta index 207a1834..0e512df0 100644 --- a/Assets/XCharts/Demo/Editor/DemoEditor.cs.meta +++ b/Assets/XCharts/Demo/Editor/DemoEditor.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: bc37c9f35cd6b4f0f936526a63fb19a5 +guid: 90c1787bea03849c8b6d19be625b7e17 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/XCharts/Demo/Editor/XCharts.Editor.Demo.asmdef b/Assets/XCharts/Demo/Editor/XCharts.Editor.Demo.asmdef new file mode 100644 index 00000000..ebf6f8e5 --- /dev/null +++ b/Assets/XCharts/Demo/Editor/XCharts.Editor.Demo.asmdef @@ -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": [] +} \ No newline at end of file diff --git a/Assets/XCharts/Demo/Editor/XCharts.Editor.Demo.asmdef.meta b/Assets/XCharts/Demo/Editor/XCharts.Editor.Demo.asmdef.meta new file mode 100644 index 00000000..67d354f5 --- /dev/null +++ b/Assets/XCharts/Demo/Editor/XCharts.Editor.Demo.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2d3606aaaf73f468984f4615b496f408 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/XCharts/Demo/Scripts.meta b/Assets/XCharts/Demo/Runtime.meta similarity index 62% rename from Assets/XCharts/Demo/Scripts.meta rename to Assets/XCharts/Demo/Runtime.meta index 1aaf0b4d..0e44740f 100644 --- a/Assets/XCharts/Demo/Scripts.meta +++ b/Assets/XCharts/Demo/Runtime.meta @@ -1,8 +1,6 @@ fileFormatVersion: 2 -guid: 2fa21c3b32aa26a49ababb5a99f12222 +guid: f67670c9ee0e64262950aaf07562454e folderAsset: yes -timeCreated: 1555731519 -licenseType: Free DefaultImporter: externalObjects: {} userData: diff --git a/Assets/XCharts/Demo/Runtime/Demo.cs b/Assets/XCharts/Demo/Runtime/Demo.cs new file mode 100644 index 00000000..270650d9 --- /dev/null +++ b/Assets/XCharts/Demo/Runtime/Demo.cs @@ -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 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(); + m_Mark = transform.Find("chart_detail/Viewport").GetComponent(); + m_Mark.enabled = true; + m_Title = transform.Find("chart_title/Text").GetComponent(); + + 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.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