diff options
Diffstat (limited to 'Client/Assembly-CSharp/ButtonBehavior.cs')
-rw-r--r-- | Client/Assembly-CSharp/ButtonBehavior.cs | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/Client/Assembly-CSharp/ButtonBehavior.cs b/Client/Assembly-CSharp/ButtonBehavior.cs new file mode 100644 index 0000000..aa941c8 --- /dev/null +++ b/Client/Assembly-CSharp/ButtonBehavior.cs @@ -0,0 +1,64 @@ +using System; +using UnityEngine; +using UnityEngine.UI; + +public class ButtonBehavior : MonoBehaviour +{ + public bool OnUp = true; + + public bool OnDown; + + public bool Repeat; + + public Button.ButtonClickedEvent OnClick = new Button.ButtonClickedEvent(); + + private Controller myController = new Controller(); + + private Collider2D[] colliders; + + private float downTime; + + public void OnEnable() + { + this.colliders = base.GetComponents<Collider2D>(); + this.myController.Reset(); + } + + public void Update() + { + this.myController.Update(); + foreach (Collider2D coll in this.colliders) + { + switch (this.myController.CheckDrag(coll, false)) + { + case DragState.TouchStart: + if (this.OnDown) + { + this.OnClick.Invoke(); + } + break; + case DragState.Dragging: + if (this.Repeat) + { + this.downTime += Time.fixedDeltaTime; + if (this.downTime >= 0.3f) + { + this.downTime = 0f; + this.OnClick.Invoke(); + } + } + else + { + this.downTime = 0f; + } + break; + case DragState.Released: + if (this.OnUp) + { + this.OnClick.Invoke(); + } + break; + } + } + } +} |