장비를 사용할 때 스테미나가 줄어들게 만들자
PlayerCondition에 스테미나 사용 함수를 만든다
public class PlayerCondition : MonoBehaviour, IDamagable
{
...
// 장비 휘두르면 스테미나 줄어든다
// 장비 사용하는 쪽에서 UseStamina를 호출
public bool UseStamina(float amount)
{
if (stamina.curValue - amount < 0) // 줄어든 스태미나가 0보다 작으면, 그 행동을 할 수 없다
{
return false;
}
stamina.Subtract(amount);
return true;
}
}
이를 장비 사용하는 쪽에서 호출한다
EquipTool의 OnAttackInput에서 호출
// 공격, 자원채취
public class EquipTool : Equip
{
...
public float useStamina; // 1회 행동할때 스테미나 소모량
...
public override void OnAttackInput()
{
// isAttacking이 false일때만 내부로직 실행
if (!attacking)
{
// 스테미나가 남았을 때만 사용가능
if (CharacterManager.Instance.Player.condition.UseStamina(useStamina))
{
attacking = true;
animator.SetTrigger("Attack"); // 애니메이션 재생
Invoke("OnCanAttack", attackRate); /// 시간차(공격주기마다 한번 호출)
}
}
}
...
'유니티 부트캠프 8기 > Ch05. Unity 게임 개발 숙련' 카테고리의 다른 글
몬스터 AI 만들기, 데미지 입었을 때 효과까지 (0) | 2025.03.05 |
---|---|
AI Navigation (0) | 2025.03.05 |
자원 수확 (0) | 2025.03.05 |
아이템 장착, 공격, 해제, 애니메이션 (0) | 2025.03.04 |
아이템 사용, 프리팹을 저장하여 검색 없이 다시 인스턴스 생성 (0) | 2025.03.04 |