Projext/Assets/Scripts/Combat/Debug/DamageBot.cs

22 lines
1.8 KiB
C#
Raw Normal View History

2026-02-12 15:23:25 +00:00
using UnityEngine; // 유니티 기본 기능을 쓰기 위해 불러올거에요 -> UnityEngine를
public class DamageBot : MonoBehaviour // 클래스를 선언할거에요 -> 트리거 안에 있는 대상에게 주기적으로 데미지를 주는 DamageBot을
{ // 코드 블록을 시작할거에요 -> DamageBot 범위를
[SerializeField] private float damageAmount = 10f, damageInterval = 1.0f; // 변수를 선언할거에요 -> 데미지량(10)과 데미지 간격(1초)을
private float timer; // 변수를 선언할거에요 -> 시간 누적용 타이머를 timer에
private void OnTriggerStay(Collider other) // 함수를 선언할거에요 -> 트리거 안에 머무는 동안 계속 호출되는 OnTriggerStay를
{ // 코드 블록을 시작할거에요 -> OnTriggerStay 범위를
if (other.TryGetComponent<IDamageable>(out var target)) // 조건을 검사할거에요 -> 대상이 IDamageable을 가지고 있는지
{ // 코드 블록을 시작할거에요 -> 데미지 가능 대상 처리
timer += Time.deltaTime; // 값을 더할거에요 -> 지난 프레임 시간만큼 타이머 누적
if (timer >= damageInterval) // 조건을 검사할거에요 -> 누적 시간이 간격을 넘었는지
{ // 코드 블록을 시작할거에요 -> 데미지 적용 처리
target.TakeDamage(damageAmount); // 함수를 실행할거에요 -> 대상에게 damageAmount만큼 데미지 주기
timer = 0f; // 값을 초기화할거에요 -> 다음 틱을 위해 타이머를 0으로
} // 코드 블록을 끝낼거에요 -> 데미지 적용 처리
} // 코드 블록을 끝낼거에요 -> 데미지 가능 대상 처리
} // 코드 블록을 끝낼거에요 -> OnTriggerStay를
} // 코드 블록을 끝낼거에요 -> DamageBot을