Files
DeviantMobile-Rohan/Assets/New Lowpoly Models/Scripts/MobileCombatButtons.cs
2026-06-26 22:41:39 +05:30

83 lines
1.8 KiB
C#

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<PlayerControllerNewRohan>();
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;
}
}
}