[HollowKnight] Monster 피격시 Player의 Attack Effect 추가 구현

-플레이어가 허공에 Attack을 하면 일반적인 공격 이펙트만 나오지만, 어떤 것에 Attack Effect가 타격 되었느냐에 따라서 이펙트가 추가된다.

기둥을 쳤을때와 몬스터를 쳤을때 추가되는 이펙트가 다름 

-이 포스팅에서는 Monster를 피격한 경우에 대해 구현해보려한다. 

 

-캡처는 그로기 상태로 변환 전인 장면이라 붕 뜨는데, 일반적으로 FalseKnight는 맞을때 붕 뜨지는 않는다. 

-즉 이 장면에서 구현할 것은 플레이어의 추가된 이펙트, FalseKnight의 깜박임 효과, 맞은 위치에 파티클로 파편 생성+Camera Shake이다. 이 포스팅에서는 플레이어의 이펙트를 추가하고, 다음 포스팅에서 FalseKnight의 GetHit을 구현할 것이다.

 

-먼저 Player의 이펙트부터 추가해보았다.

-Player의 기본 공격 이펙트에 콜라이더를 넣어주고 IsTrigger를 체크해주었다. 충돌 체크를 위한 범위일뿐 이 이펙트 자체가 물리운동은 하지않는다.

-AttackEffect에 EffectController.cs도 추가한다. 콜라이더가 물체와 충돌했는지 검사하기 위한 스크립트이다.

-FalseKnight의 태그를 FalseKnight로 변경한다.

충돌체크확인
충돌이 일어났을때만 로그가 나오는 것 확인

코드를 수정해주었다. 충돌했을때 이펙트가 나온다.

-그런데 콜라이더 체크가 제대로 안되는 것인지 부딪힌것 같은데 이펙트가 잘 나오지 않아서 코드를 다시 확인해보았다.

-코드상의 문제는 아닌 것 같고 지금 콜라이더 체크를 OnTriggerEnter로 하고 있는데 위의 문제는 충돌처리가 되고 나서 제자리에서 또 하려고 할때 발생하는 것으로 보인다. 다른 위치에 나갔다가 다시 공격하면 발생하지 않기 때문이다. 

좀 더 고민해보고 수정해봐야겠다.

 

OnTriggerEnter2D(Collider2D other)

 - 오브젝트간 충돌이 일어날때 처음 한번만 호출되는 함수

OnTriggerStay2D(Collider2D other) 

 - 오브젝트간 충돌이 일어나는 동안 지속적으로 호출되는 함수

OnTriggerEnter2D(Collider2D other) 

 - 오브젝트간 충돌에서 벗어날때 한번 호출되는 함수

myoskin