You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
150 lines
3.5 KiB
150 lines
3.5 KiB
3 years ago
|
using UnityEngine;
|
||
|
|
||
|
namespace FairyGUI
|
||
|
{
|
||
|
/// <summary>
|
||
|
///
|
||
|
/// </summary>
|
||
|
public class InputEvent
|
||
|
{
|
||
|
/// <summary>
|
||
|
/// x position in stage coordinates.
|
||
|
/// </summary>
|
||
|
public float x { get; internal set; }
|
||
|
|
||
|
/// <summary>
|
||
|
/// y position in stage coordinates.
|
||
|
/// </summary>
|
||
|
public float y { get; internal set; }
|
||
|
|
||
|
/// <summary>
|
||
|
///
|
||
|
/// </summary>
|
||
|
public KeyCode keyCode { get; internal set; }
|
||
|
|
||
|
/// <summary>
|
||
|
///
|
||
|
/// </summary>
|
||
|
public char character { get; internal set; }
|
||
|
|
||
|
/// <summary>
|
||
|
///
|
||
|
/// </summary>
|
||
|
public EventModifiers modifiers { get; internal set; }
|
||
|
|
||
|
/// <summary>
|
||
|
///
|
||
|
/// </summary>
|
||
|
public float mouseWheelDelta { get; internal set; }
|
||
|
|
||
|
/// <summary>
|
||
|
///
|
||
|
/// </summary>
|
||
|
public int touchId { get; internal set; }
|
||
|
|
||
|
/// <summary>
|
||
|
/// -1-none,0-left,1-right,2-middle
|
||
|
/// </summary>
|
||
|
public int button { get; internal set; }
|
||
|
|
||
|
/// <summary>
|
||
|
///
|
||
|
/// </summary>
|
||
|
/// <value></value>
|
||
|
public int clickCount { get; internal set; }
|
||
|
|
||
|
/// <summary>
|
||
|
/// Duraion of holding the button. You can read this in touchEnd or click event.
|
||
|
/// </summary>
|
||
|
/// <value></value>
|
||
|
public float holdTime { get; internal set; }
|
||
|
|
||
|
public InputEvent()
|
||
|
{
|
||
|
touchId = -1;
|
||
|
x = 0;
|
||
|
y = 0;
|
||
|
clickCount = 0;
|
||
|
keyCode = KeyCode.None;
|
||
|
character = '\0';
|
||
|
modifiers = 0;
|
||
|
mouseWheelDelta = 0;
|
||
|
}
|
||
|
|
||
|
/// <summary>
|
||
|
///
|
||
|
/// </summary>
|
||
|
public Vector2 position
|
||
|
{
|
||
|
get { return new Vector2(x, y); }
|
||
|
}
|
||
|
|
||
|
/// <summary>
|
||
|
///
|
||
|
/// </summary>
|
||
|
public bool isDoubleClick
|
||
|
{
|
||
|
get { return clickCount > 1 && button == 0; }
|
||
|
}
|
||
|
|
||
|
/// <summary>
|
||
|
///
|
||
|
/// </summary>
|
||
|
public bool ctrlOrCmd
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
return ctrl || command;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/// <summary>
|
||
|
///
|
||
|
/// </summary>
|
||
|
public bool ctrl
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
return Input.GetKey(KeyCode.LeftControl) || Input.GetKey(KeyCode.RightControl);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/// <summary>
|
||
|
///
|
||
|
/// </summary>
|
||
|
public bool shift
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
return Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/// <summary>
|
||
|
///
|
||
|
/// </summary>
|
||
|
public bool alt
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
return Input.GetKey(KeyCode.LeftAlt) || Input.GetKey(KeyCode.RightAlt);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/// <summary>
|
||
|
///
|
||
|
/// </summary>
|
||
|
public bool command
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
//In win, as long as the win key and other keys are pressed at the same time, the getKey will continue to return true. So it can only be shielded.
|
||
|
if (Application.platform == RuntimePlatform.OSXPlayer || Application.platform == RuntimePlatform.OSXEditor)
|
||
|
return Input.GetKey(KeyCode.LeftCommand) || Input.GetKey(KeyCode.RightCommand);
|
||
|
else
|
||
|
return false;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|