private void Explosion()
{
float damage = Context.Entity.Data.damage;
RaycastHit[] hits = Physics.SphereCastAll(Context.Entity.transform.position, 10, Vector3.up, 0f);
foreach (RaycastHit hit in hits)
{
if (hit.transform.gameObject.TryGetComponent(out Entity entity))
{
,,,생략,,,
entity.GetDamaged(damage);
}
if (hit.transform.gameObject.TryGetComponent(out Module module))
{
module.ModuleStatus.GetDamage(damage);
}
}
,,,생략,,,
}
이 외에는 기록하기에는 너무 애매한 것들이라 생략!
BaseState
클래스의 UpdateStates
메소드가 계속해서 자신을 호출하는 현상이 일어났다.뭔가 이상해서 각 스테이트의 시작 부분에 로그를 찍어보니
원래는 Idle스테이트 → Chasing 스테이트 → Idle스테이트 여야 서로 왔다갔다를 하는데
Chasing스테이트에서 상태 변환을 잘못 호출해서
[Idle → Chasing → Combat] 이렇게 호출하였고 또 Combat에서는 공격할 거리가 안되니 Idle로 호출을 하고.. 무한 반복이었다.
암튼 오늘도 해결!