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.
90 lines
2.7 KiB
90 lines
2.7 KiB
using UnityEngine; |
|
|
|
#if ENABLE_INPUT_SYSTEM && !ENABLE_LEGACY_INPUT_MANAGER |
|
using UnityEngine.InputSystem; |
|
using UnityEngine.InputSystem.Controls; |
|
using EnhancedTouch = UnityEngine.InputSystem.EnhancedTouch; |
|
#endif |
|
|
|
namespace HighlightPlus { |
|
|
|
public static class InputProxy { |
|
|
|
#if ENABLE_INPUT_SYSTEM && !ENABLE_LEGACY_INPUT_MANAGER |
|
|
|
static Vector3 lastPointerPosition; |
|
|
|
public static void Init() { |
|
if (!EnhancedTouch.EnhancedTouchSupport.enabled) { |
|
EnhancedTouch.EnhancedTouchSupport.Enable(); |
|
} |
|
} |
|
|
|
public static Vector3 mousePosition { |
|
get { |
|
if (touchCount > 0) { |
|
lastPointerPosition = EnhancedTouch.Touch.activeTouches[0].screenPosition; |
|
} else { |
|
Mouse m = Mouse.current; |
|
if (m != null) { |
|
lastPointerPosition = m.position.ReadValue(); |
|
} |
|
} |
|
return lastPointerPosition; |
|
} |
|
} |
|
|
|
public static bool GetMouseButtonDown(int buttonIndex) { |
|
if (touchCount > 0) { |
|
return EnhancedTouch.Touch.activeTouches[0].phase == UnityEngine.InputSystem.TouchPhase.Began; |
|
} else { |
|
Mouse m = Mouse.current; |
|
if (m == null) return false; |
|
switch (buttonIndex) { |
|
case 1: return m.rightButton.wasPressedThisFrame; |
|
case 2: return m.middleButton.wasPressedThisFrame; |
|
default: return m.leftButton.wasPressedThisFrame; |
|
} |
|
} |
|
} |
|
|
|
public static int touchCount { get { return EnhancedTouch.Touch.activeTouches.Count; } } |
|
|
|
public static int GetFingerIdFromTouch(int touchIndex) { |
|
EnhancedTouch.Touch touch = EnhancedTouch.Touch.activeTouches[touchIndex]; |
|
return touch.finger.index; |
|
} |
|
|
|
public static bool GetKeyDown(string name) { |
|
return ((KeyControl)Keyboard.current[name]).wasPressedThisFrame; |
|
} |
|
|
|
#else |
|
public static void Init() {} |
|
|
|
public static Vector3 mousePosition { |
|
get { |
|
return Input.mousePosition; |
|
} |
|
} |
|
|
|
public static bool GetMouseButtonDown(int buttonIndex) { |
|
return Input.GetMouseButtonDown(buttonIndex); |
|
} |
|
|
|
public static int touchCount { |
|
get { return Input.touchCount; } |
|
} |
|
|
|
public static int GetFingerIdFromTouch(int touchIndex) { |
|
return Input.GetTouch(touchIndex).fingerId; |
|
} |
|
|
|
public static bool GetKeyDown(string name) { |
|
return Input.GetKeyDown(name); |
|
} |
|
|
|
#endif |
|
|
|
} |
|
}
|
|
|