using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor; namespace ActionTool { internal class ActionEditorUI { static ActionEditorUI s_instance; static Material m_material; public Material defaultUIMaterail { get { return m_material; } } public static ActionEditorUI Get() { bool flag = s_instance == null; if (flag) { s_instance = new ActionEditorUI(); } return s_instance; } private ActionEditorUI() { m_material = new Material(Shader.Find("Hidden/Internal-Colored")); m_material.hideFlags = HideFlags.HideAndDontSave; } public void DrawVerticalLineFast(float x, float minY, float maxY, Color color) { bool bWin = Application.platform == RuntimePlatform.WindowsEditor; if (bWin) { GL.Color(color); GL.Vertex(new Vector3(x - 0.5f, minY, 0f)); GL.Vertex(new Vector3(x + 0.5f, minY, 0f)); GL.Vertex(new Vector3(x + 0.5f, maxY, 0f)); GL.Vertex(new Vector3(x - 0.5f, maxY, 0f)); } else { GL.Color(color); GL.Vertex(new Vector3(x, minY, 0f)); GL.Vertex(new Vector3(x, maxY, 0f)); } } public void DrawHorizontalLineFast(float y, float minX, float maxX, Color color) { bool bWin = Application.platform == RuntimePlatform.WindowsEditor; if (bWin) { GL.Color(color); GL.Vertex(new Vector3(minX, y - 0.5f, 0f)); GL.Vertex(new Vector3(minX, y + 0.5f, 0f)); GL.Vertex(new Vector3(maxX, y + 0.5f, 0f)); GL.Vertex(new Vector3(maxX, y - 0.5f, 0f)); } else { GL.Color(color); GL.Vertex(new Vector3(minX, y, 0f)); GL.Vertex(new Vector3(maxX, y, 0f)); } } public void SelectObject(Object obj) { Selection.activeObject = obj; EditorGUIUtility.PingObject(obj); } public void SelectObject(string path) { Object obj = AssetDatabase.LoadAssetAtPath(path, typeof(Object)) as Object; if(obj) { SelectObject(obj); } } } }