From e9ea621b93fbb58d9edfca8375918791637bbd52 Mon Sep 17 00:00:00 2001 From: chai Date: Wed, 30 Dec 2020 20:59:04 +0800 Subject: +init --- Client/Assembly-CSharp/ButtonBehavior.cs | 64 ++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 Client/Assembly-CSharp/ButtonBehavior.cs (limited to 'Client/Assembly-CSharp/ButtonBehavior.cs') 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(); + 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; + } + } + } +} -- cgit v1.1-26-g67d0