1
This commit is contained in:
113
Assets/Dreamteck/Utilities/Editor/EditorGUIEvents.cs
Normal file
113
Assets/Dreamteck/Utilities/Editor/EditorGUIEvents.cs
Normal file
@@ -0,0 +1,113 @@
|
||||
using UnityEngine;
|
||||
using UnityEditor;
|
||||
|
||||
namespace Dreamteck
|
||||
{
|
||||
public class EditorGUIEvents
|
||||
{
|
||||
public bool mouseLeft = false;
|
||||
public bool mouseRight = false;
|
||||
public bool mouseLeftDown = false;
|
||||
public bool mouseRightDown = false;
|
||||
public bool mouseLeftUp = false;
|
||||
public bool mouseRightUp = false;
|
||||
public bool control = false;
|
||||
public bool shift = false;
|
||||
public bool alt = false;
|
||||
public bool enterDown = false;
|
||||
public bool v = false;
|
||||
public Vector2 mousPos = Vector2.zero;
|
||||
public Vector2 lastClickPoint = Vector2.zero;
|
||||
public Vector2 mouseClickDelta
|
||||
{
|
||||
get
|
||||
{
|
||||
return Event.current.mousePosition - lastClickPoint;
|
||||
}
|
||||
}
|
||||
|
||||
public delegate void CommandHandler(string command);
|
||||
public delegate void KeyCodeHandler(KeyCode code);
|
||||
public delegate void MouseHandler(int button);
|
||||
public delegate void EmptyHandler();
|
||||
|
||||
public event CommandHandler onCommand;
|
||||
public event KeyCodeHandler onkeyDown;
|
||||
public event KeyCodeHandler onKeyUp;
|
||||
public event MouseHandler onMouseDown;
|
||||
public event MouseHandler onMouseUp;
|
||||
|
||||
public void Use()
|
||||
{
|
||||
mouseLeft = false;
|
||||
mouseRight = false;
|
||||
mouseLeftDown = false;
|
||||
mouseRightDown = false;
|
||||
mouseLeftUp = false;
|
||||
mouseRightUp = false;
|
||||
control = false;
|
||||
shift = false;
|
||||
alt = false;
|
||||
Event.current.Use();
|
||||
}
|
||||
|
||||
public void Update()
|
||||
{
|
||||
ListenInput(Event.current);
|
||||
}
|
||||
|
||||
public void Update(Event current)
|
||||
{
|
||||
ListenInput(current);
|
||||
}
|
||||
|
||||
void ListenInput(Event e)
|
||||
{
|
||||
//int controlID = GUIUtility.GetControlID(FocusType.Passive);
|
||||
mousPos = e.mousePosition;
|
||||
mouseLeftDown = mouseLeftUp = mouseRightDown = mouseRightUp = false;
|
||||
control = e.control;
|
||||
shift = e.shift;
|
||||
alt = e.alt;
|
||||
enterDown = false;
|
||||
switch (e.type)
|
||||
{
|
||||
case EventType.MouseDown:
|
||||
if (e.button == 0)
|
||||
{
|
||||
mouseLeftDown = true;
|
||||
mouseLeft = true;
|
||||
lastClickPoint = e.mousePosition;
|
||||
}
|
||||
if (e.button == 1) mouseRightDown = mouseRight = true;
|
||||
if (onMouseDown != null) onMouseDown(e.button);
|
||||
break;
|
||||
case EventType.MouseUp:
|
||||
if (e.button == 0)
|
||||
{
|
||||
mouseLeftUp = true;
|
||||
mouseLeft = false;
|
||||
}
|
||||
if (e.button == 1)
|
||||
{
|
||||
mouseRightDown = true;
|
||||
mouseRight = false;
|
||||
}
|
||||
if (onMouseUp != null) onMouseUp(e.button);
|
||||
break;
|
||||
|
||||
case EventType.KeyDown:
|
||||
if (onkeyDown != null) onkeyDown(e.keyCode);
|
||||
if (e.keyCode == KeyCode.Return || e.keyCode == KeyCode.KeypadEnter) enterDown = true;
|
||||
if (e.keyCode == KeyCode.V) v = true;
|
||||
break;
|
||||
|
||||
case EventType.KeyUp:
|
||||
if (onKeyUp != null) onKeyUp(e.keyCode);
|
||||
if (e.keyCode == KeyCode.V) v = false;
|
||||
break;
|
||||
}
|
||||
if (onCommand != null && e.commandName != "") onCommand(e.commandName);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user