using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
namespace JoystickPlugin
{
public class Joystick : MonoBehaviour, IPointerUpHandler, IDragHandler, IPointerDownHandler
{
public float Horizontal { get { return (snapX) ? SnapFloat(input.x, AxisOptions.Horizontal) : input.x; } }
public float Vertical { get { return (snapY) ? SnapFloat(input.y, AxisOptions.Vertical) : input.y; } }
public Vector2 Direction { get { return new Vector2(Horizontal, Vertical); } }
public float HandleRange
{
get { return handleRange; }
set { handleRange = Mathf.Abs(value); }
}
public float DeadZone
{
get { return deadZone; }
set { deadZone = Mathf.Abs(value); }
}
public AxisOptions AxisOptions { get { return AxisOptions; } set { axisOptions = value; } }
public bool SnapX { get { return snapX; } set { snapX = value; } }
public bool SnapY { get { return snapY; } set { snapY = value; } }
SerializeField\] private float handleRange = 1;
\[SerializeField\] private float deadZone = 0;
\[SerializeField\] private AxisOptions axisOptions = AxisOptions.Both;
\[SerializeField\] private bool snapX = false;
\[SerializeField\] private bool snapY = false;
\[SerializeField\] public RectTransform background = null;
\[SerializeField\] public RectTransform handle = null;
private RectTransform baseRect = null;
private Canvas canvas;
private Camera cam;
private Vector2 input = Vector2.zero;
private void Awake()
{
HandleRange = 0.5f;
DeadZone = 0;
AxisOptions = AxisOptions.Both;
SnapX = false;
SnapY = false;
background = transform.Find("Background").GetComponent\();
handle = transform.Find("Background/Handle").GetComponent\();
baseRect = GetComponent\();
canvas = transform.parent.GetComponent\