diff options
| author | chai <215380520@qq.com> | 2024-05-20 22:36:58 +0800 |
|---|---|---|
| committer | chai <215380520@qq.com> | 2024-05-20 22:36:58 +0800 |
| commit | a22c505984697881f5f911a165ee022087b69e09 (patch) | |
| tree | d3c030aef1ae9b8a01c889dd2902bb1e3324e72b /Thronefall_1_0/Rewired/Rewired.Demos/TouchJoystickExample.cs | |
| parent | 4a4cc82d069b26bc4d4532e73860f86b211ca239 (diff) | |
Diffstat (limited to 'Thronefall_1_0/Rewired/Rewired.Demos/TouchJoystickExample.cs')
| -rw-r--r-- | Thronefall_1_0/Rewired/Rewired.Demos/TouchJoystickExample.cs | 110 |
1 files changed, 0 insertions, 110 deletions
diff --git a/Thronefall_1_0/Rewired/Rewired.Demos/TouchJoystickExample.cs b/Thronefall_1_0/Rewired/Rewired.Demos/TouchJoystickExample.cs deleted file mode 100644 index f05af89..0000000 --- a/Thronefall_1_0/Rewired/Rewired.Demos/TouchJoystickExample.cs +++ /dev/null @@ -1,110 +0,0 @@ -using System; -using UnityEngine; -using UnityEngine.EventSystems; -using UnityEngine.UI; - -namespace Rewired.Demos; - -[AddComponentMenu("")] -[RequireComponent(typeof(Image))] -public class TouchJoystickExample : MonoBehaviour, IPointerDownHandler, IEventSystemHandler, IPointerUpHandler, IDragHandler -{ - public bool allowMouseControl = true; - - public int radius = 50; - - private Vector2 origAnchoredPosition; - - private Vector3 origWorldPosition; - - private Vector2 origScreenResolution; - - private ScreenOrientation origScreenOrientation; - - [NonSerialized] - private bool hasFinger; - - [NonSerialized] - private int lastFingerId; - - public Vector2 position { get; private set; } - - private void Start() - { - if (SystemInfo.deviceType == DeviceType.Handheld) - { - allowMouseControl = false; - } - StoreOrigValues(); - } - - private void Update() - { - if ((float)Screen.width != origScreenResolution.x || (float)Screen.height != origScreenResolution.y || Screen.orientation != origScreenOrientation) - { - Restart(); - StoreOrigValues(); - } - } - - private void Restart() - { - hasFinger = false; - (base.transform as RectTransform).anchoredPosition = origAnchoredPosition; - position = Vector2.zero; - } - - private void StoreOrigValues() - { - origAnchoredPosition = (base.transform as RectTransform).anchoredPosition; - origWorldPosition = base.transform.position; - origScreenResolution = new Vector2(Screen.width, Screen.height); - origScreenOrientation = Screen.orientation; - } - - private void UpdateValue(Vector3 value) - { - Vector3 vector = origWorldPosition - value; - vector.y = 0f - vector.y; - vector /= (float)radius; - position = new Vector2(0f - vector.x, vector.y); - } - - void IPointerDownHandler.OnPointerDown(PointerEventData eventData) - { - if (!hasFinger && (allowMouseControl || !IsMousePointerId(eventData.pointerId))) - { - hasFinger = true; - lastFingerId = eventData.pointerId; - } - } - - void IPointerUpHandler.OnPointerUp(PointerEventData eventData) - { - if (eventData.pointerId == lastFingerId && (allowMouseControl || !IsMousePointerId(eventData.pointerId))) - { - Restart(); - } - } - - void IDragHandler.OnDrag(PointerEventData eventData) - { - if (hasFinger && eventData.pointerId == lastFingerId) - { - Vector3 vector = new Vector3(eventData.position.x - origWorldPosition.x, eventData.position.y - origWorldPosition.y); - vector = Vector3.ClampMagnitude(vector, radius); - Vector3 value = origWorldPosition + vector; - base.transform.position = value; - UpdateValue(value); - } - } - - private static bool IsMousePointerId(int id) - { - if (id != -1 && id != -2) - { - return id == -3; - } - return true; - } -} |
