summaryrefslogtreecommitdiff
path: root/Assets/Thirdparty/Joystick Pack/Scripts/Joysticks/VariableJoystick.cs
diff options
context:
space:
mode:
authorAndrew Lee <alee14498@protonmail.com>2020-08-20 23:40:50 -0400
committerAndrew Lee <alee14498@protonmail.com>2020-08-20 23:40:50 -0400
commit3af4c218c0e70167db23a6303d2af30aff37d2fe (patch)
tree927f29edcf54ab562f40f3d1c6cb69287c7f5980 /Assets/Thirdparty/Joystick Pack/Scripts/Joysticks/VariableJoystick.cs
parentb6daed0af784f4e9bc13329dd87c671b06ee1c65 (diff)
downloadProject-Sandbox-3af4c218c0e70167db23a6303d2af30aff37d2fe.tar.gz
Project-Sandbox-3af4c218c0e70167db23a6303d2af30aff37d2fe.tar.bz2
Project-Sandbox-3af4c218c0e70167db23a6303d2af30aff37d2fe.zip
Removed a bunch of stuff; Changes
Diffstat (limited to 'Assets/Thirdparty/Joystick Pack/Scripts/Joysticks/VariableJoystick.cs')
-rw-r--r--Assets/Thirdparty/Joystick Pack/Scripts/Joysticks/VariableJoystick.cs63
1 files changed, 63 insertions, 0 deletions
diff --git a/Assets/Thirdparty/Joystick Pack/Scripts/Joysticks/VariableJoystick.cs b/Assets/Thirdparty/Joystick Pack/Scripts/Joysticks/VariableJoystick.cs
new file mode 100644
index 0000000..17e98db
--- /dev/null
+++ b/Assets/Thirdparty/Joystick Pack/Scripts/Joysticks/VariableJoystick.cs
@@ -0,0 +1,63 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.EventSystems;
+
+public class VariableJoystick : Joystick
+{
+ public float MoveThreshold { get { return moveThreshold; } set { moveThreshold = Mathf.Abs(value); } }
+
+ [SerializeField] private float moveThreshold = 1;
+ [SerializeField] private JoystickType joystickType = JoystickType.Fixed;
+
+ private Vector2 fixedPosition = Vector2.zero;
+
+ public void SetMode(JoystickType joystickType)
+ {
+ this.joystickType = joystickType;
+ if(joystickType == JoystickType.Fixed)
+ {
+ background.anchoredPosition = fixedPosition;
+ background.gameObject.SetActive(true);
+ }
+ else
+ background.gameObject.SetActive(false);
+ }
+
+ protected override void Start()
+ {
+ base.Start();
+ fixedPosition = background.anchoredPosition;
+ SetMode(joystickType);
+ }
+
+ public override void OnPointerDown(PointerEventData eventData)
+ {
+ if(joystickType != JoystickType.Fixed)
+ {
+ background.anchoredPosition = ScreenPointToAnchoredPosition(eventData.position);
+ background.gameObject.SetActive(true);
+ }
+ base.OnPointerDown(eventData);
+ }
+
+ public override void OnPointerUp(PointerEventData eventData)
+ {
+ if(joystickType != JoystickType.Fixed)
+ background.gameObject.SetActive(false);
+
+ base.OnPointerUp(eventData);
+ }
+
+ protected override void HandleInput(float magnitude, Vector2 normalised, Vector2 radius, Camera cam)
+ {
+ if (joystickType == JoystickType.Dynamic && magnitude > moveThreshold)
+ {
+ Vector2 difference = normalised * (magnitude - moveThreshold) * radius;
+ background.anchoredPosition += difference;
+ }
+ base.HandleInput(magnitude, normalised, radius, cam);
+ }
+}
+
+public enum JoystickType { Fixed, Floating, Dynamic } \ No newline at end of file