private IEnumerator KnockbackRoutine()
{
this.isKnockBack = true;
//Physics2D.IgnoreLayerCollision(7, 7, true);
this.stun = 0;
if (!this.noKnockbackAnim)
{
this.anim.SetInteger("State", -1);
this.anim.Play("Hit", -1, 0);
}
yield return new WaitForSeconds(0.15f);
if (!this.noKnockbackAnim) this.anim.SetInteger("State", 0);
this.isKnockBack = false;
//Physics2D.IgnoreLayerCollision(7, 7, false);
this.rBody2D.velocity = Vector2.zero;
this.stun = 1;
}
public void StopKnockback()
{
if(this.knockBackRoutine != null) StopCoroutine(this.knockBackRoutine);
}
몬스터가 죽을 때 오브젝트 풀러의 큐 배열로 들어가면서 StopKncoback 메서드가 호출되고 해당 코루틴이 중간에 멈추는 것 떄문에 발생한 문제로 해당 메서드를 호출하지 않도록하여 문제를 해결하였습니다.
- 오브젝트 풀러에서 Dequeue된 몬스터들이 길찾기를 정상적으로 수행하지 못함
- 모든 몬스터의 길찾기가 정상적으로 실행되는 모습
'C# > 문제 해결' 카테고리의 다른 글
가상 조이스틱 유저경험 개선 (0) | 2023.05.15 |
---|---|
파괴된 오브젝트의 클래스에 등록된 이벤트 호출문제 (0) | 2023.05.13 |
Unity) [유니티 2D] Rigidbody2D를 활용한 조작 문제 (0) | 2023.03.06 |
Unity) [유니티 2D] 애니메이션 연동 (2) | 2023.03.04 |
Unity) [유니티 UI] 스크린좌표를 통한 캐릭터, UI 이동 (0) | 2023.02.20 |