using UnityEngine; // 攻撃入力と見た目の再生時間を管理する public class CharacterAttack : MonoBehaviour { [SerializeField] private AttackEffect attackEffect; [SerializeField] private float attackDuration = 0.5f; private float _elapsedTime; public bool IsAttacking { get; private set; } private void Update() { if (!IsAttacking) return; _elapsedTime += Time.deltaTime; if (_elapsedTime >= attackDuration) IsAttacking = false; } public void Attack() { if (IsAttacking) return; IsAttacking = true; _elapsedTime = 0f; attackEffect?.Play(); } public void CancelAttack() { IsAttacking = false; attackEffect?.Stop(); } }