using UnityEngine; using UnityEngine.EventSystems; public class MobileCombatButtons : MonoBehaviour, IPointerDownHandler, IPointerUpHandler { public enum ButtonType { Punch, Kick, Special } public ButtonType buttonType; public PlayerControllerNewRohan player; [SerializeField] private float holdTime = 0.3f; private float pressTime; private bool isHolding; private bool holdTriggered; void Update() { if (player == null) player = FindFirstObjectByType(); if (isHolding && !holdTriggered) { if (Time.time - pressTime >= holdTime) { holdTriggered = true; switch (buttonType) { case ButtonType.Punch: player.PunchHold(); break; case ButtonType.Kick: player.KickHold(); break; case ButtonType.Special: player.SpecialHold(); break; } } } } public void OnPointerDown(PointerEventData eventData) { pressTime = Time.time; isHolding = true; holdTriggered = false; } public void OnPointerUp(PointerEventData eventData) { isHolding = false; if (holdTriggered) return; switch (buttonType) { case ButtonType.Punch: player.PunchTap(); break; case ButtonType.Kick: player.KickTap(); break; case ButtonType.Special: player.SpecialTap(); break; } } }