轨迹插件引入
This commit is contained in:
1 parent
89b5275efd
commit
195893a1b0
1023 files changed
+378944
-18404
No files matched your search
@@ -0,0 +1,201 @@
|
||||
// =====================================================================
|
||||
// Copyright 2013-2017 Fluffy Underware
|
||||
// All rights reserved
|
||||
//
|
||||
// http://www.fluffyunderware.com
|
||||
// =====================================================================
|
||||
|
||||
using UnityEngine;
|
||||
using UnityEditor;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace FluffyUnderware.DevToolsEditor
|
||||
{
|
||||
public static class DTGUI
|
||||
{
|
||||
static Stack<Color> _BGColorStack = new Stack<Color>();
|
||||
static Stack<Color> _ColorStack = new Stack<Color>();
|
||||
static Stack<Color> _ContentColorStack = new Stack<Color>();
|
||||
|
||||
|
||||
#region --- Colors ---
|
||||
|
||||
public static void PushColor(Color col)
|
||||
{
|
||||
_ColorStack.Push(GUI.color);
|
||||
GUI.color = col;
|
||||
}
|
||||
|
||||
public static void PopColor()
|
||||
{
|
||||
GUI.color = _ColorStack.Pop();
|
||||
}
|
||||
|
||||
public static void PushBackgroundColor(Color col)
|
||||
{
|
||||
_BGColorStack.Push(GUI.color);
|
||||
GUI.color = col;
|
||||
}
|
||||
|
||||
public static void PopBackgroundColor()
|
||||
{
|
||||
GUI.color = _BGColorStack.Pop();
|
||||
}
|
||||
|
||||
public static void PushContentColor(Color col)
|
||||
{
|
||||
_ContentColorStack.Push(GUI.contentColor);
|
||||
GUI.contentColor = col;
|
||||
}
|
||||
|
||||
public static void PopContentColor()
|
||||
{
|
||||
GUI.contentColor = _ContentColorStack.Pop();
|
||||
}
|
||||
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
#region --- Events ---
|
||||
|
||||
public static bool IsClick
|
||||
{
|
||||
get
|
||||
{
|
||||
return (Event.current!=null && Event.current.type == EventType.MouseDown && Event.current.button == 0);
|
||||
}
|
||||
}
|
||||
public static bool IsContextClick
|
||||
{
|
||||
get
|
||||
{
|
||||
return (Event.current != null && Event.current.type == EventType.MouseDown && Event.current.button == 1);
|
||||
}
|
||||
}
|
||||
|
||||
public static bool IsLayout { get { return Event.current != null && Event.current.type == EventType.Layout; } }
|
||||
public static bool IsRepaint { get { return Event.current != null && Event.current.type == EventType.Repaint; } }
|
||||
|
||||
public static Vector2 MousePosition
|
||||
{
|
||||
get
|
||||
{
|
||||
return (Event.current != null) ? Event.current.mousePosition : Vector2.zero;
|
||||
}
|
||||
}
|
||||
|
||||
public static void UseEvent(int hashcode, Event e)
|
||||
{
|
||||
int controlID = GUIUtility.GetControlID(hashcode, FocusType.Passive);
|
||||
GUIUtility.hotControl = controlID;
|
||||
e.Use();
|
||||
GUIUtility.hotControl = 0;
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region --- Controls ---
|
||||
|
||||
public static void HtmlHelpBox(string message, MessageType type = MessageType.None)
|
||||
{
|
||||
GUIContent c;
|
||||
switch (type)
|
||||
{
|
||||
case MessageType.Info:
|
||||
c = EditorGUIUtility.IconContent("console.infoicon");
|
||||
break;
|
||||
case MessageType.Warning:
|
||||
c = EditorGUIUtility.IconContent("console.warningicon");
|
||||
break;
|
||||
case MessageType.Error:
|
||||
c = EditorGUIUtility.IconContent("console.erroricon");
|
||||
break;
|
||||
default:
|
||||
c = new GUIContent();
|
||||
break;
|
||||
}
|
||||
c.text=message;
|
||||
GUILayout.Label(c, DTStyles.HtmlHelpBox);
|
||||
}
|
||||
|
||||
public static Vector2 CompactVector2Field(Rect position, Vector2 value)
|
||||
{
|
||||
float labelWidth = 13f;
|
||||
|
||||
float num2 = (position.width - 2) / 2f;
|
||||
Rect position2 = new Rect(position);
|
||||
position2.width = num2;
|
||||
float labelWidth2 = EditorGUIUtility.labelWidth;
|
||||
int indentLevel = EditorGUI.indentLevel;
|
||||
EditorGUIUtility.labelWidth = labelWidth;
|
||||
EditorGUI.indentLevel = 0;
|
||||
value.x = EditorGUI.FloatField(position2, "X", value.x);
|
||||
position2.x += num2 + 2f;
|
||||
value.y = EditorGUI.FloatField(position2, "Y", value.y);
|
||||
|
||||
EditorGUIUtility.labelWidth = labelWidth2;
|
||||
EditorGUI.indentLevel = indentLevel;
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
public static Vector3 CompactVector3Field(Rect position, Vector3 value)
|
||||
{
|
||||
float labelWidth = 13f;
|
||||
float num2 = (position.width - 4) / 3f;
|
||||
Rect position2 = new Rect(position);
|
||||
position2.width = num2;
|
||||
float labelWidth2 = EditorGUIUtility.labelWidth;
|
||||
int indentLevel = EditorGUI.indentLevel;
|
||||
EditorGUIUtility.labelWidth = labelWidth;
|
||||
EditorGUI.indentLevel = 0;
|
||||
value.x = EditorGUI.FloatField(position2, "X", value.x);
|
||||
position2.x += num2 + 2f;
|
||||
value.y = EditorGUI.FloatField(position2, "Y", value.y);
|
||||
position2.x += num2 + 2f;
|
||||
value.z = EditorGUI.FloatField(position2, "Z", value.z);
|
||||
|
||||
EditorGUIUtility.labelWidth = labelWidth2;
|
||||
EditorGUI.indentLevel = indentLevel;
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
public static bool LinkButton(Rect position, GUIContent content, ref bool repaint)
|
||||
{
|
||||
if (position.Contains(DTGUI.MousePosition))
|
||||
repaint = true;
|
||||
return GUI.Button(position, content, DTStyles.HtmlLinkLabel);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
public static float LabelWidth(string label)
|
||||
{
|
||||
return LabelWidth(new GUIContent(label));
|
||||
}
|
||||
public static float LabelWidth(GUIContent label)
|
||||
{
|
||||
return EditorStyles.label.CalcSize(label).x;
|
||||
}
|
||||
|
||||
public static Rect FromTo(this Vector2 start, Vector2 end)
|
||||
{
|
||||
Rect result = new Rect(start.x, start.y, end.x - start.x, end.y - start.y);
|
||||
if (result.width < 0f)
|
||||
{
|
||||
result.x += result.width;
|
||||
result.width = -result.width;
|
||||
}
|
||||
if (result.height < 0f)
|
||||
{
|
||||
result.y += result.height;
|
||||
result.height = -result.height;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user