소멸 이펙트

CJB_ny·2022년 5월 23일
0

2D_Project

목록 보기
13/23

이것을 또 하나의 애니매이션으로 만들고

적이 맞아서 죽으면 이것을 하나의 오브젝트로 생성을 해서 사라지게 만들면 될 것이다.

스프라이트 이미지 아무거나 하나 들고와서

이름 바꾸고

컴포넌트에 Animator컴포넌트 추가를 해주도록 한다.

Effect > DieEffectAnimationController 만든다.

밑에있는 스프라이트 싹 긁어서 DieEffect에다가 드래그 한후

경로에 맞게 START라는 이름으로 애니매이션 만들어 주도록 한다.

이렇게 굿.

애니매이션 같은 경우 하나밖에 없는 경우 이름을 START 처럼 사용하는 경우가 굉장히 많다.

아 그리고

다이 이펙트 Order In Layer 바꾸는거 잊지 말고.

그리고 이펙트 크기

Pixel Per 이거는 크기가 커질 수록 씬에서 작아짐

그래서 이 이펙트는 몬스터가 피격을 받으면 틀어주다가 사라지게 하면된다.

사라지게 구현

그래서 ArrowController부분에서 이런식으로

사라지게끔 만들어주자

중간에 ObjectManager에서도 Object들을 관리를 했었으니까 여기서도 없어지게 만들어 주자.

그리고 화살 없어지는 위치가 이상하니까

이렇게 수정 ㄱㄱ


펀치 할 떄도 구현

PlayerController에서도 이부분에서 펀치 맞을 때 로그 찍고 있었는데

이부분에서 아까 ArrowController에서 작성한 부분을 넣어 주어도 될거같음.

그런데!

이런 부분에서 이제 경험에서 우러 나오는 부분중 하나가 뭐냐면은

"전략적"으로 잘 생각 해야된다.

몬스터를 죽이는 쪽에서 빼서 관리를 하는게 맞을까는???
굉장히 철학적인 질문이 되는 것이다.

잘못된 지역에 가서 도트뎀에 죽을 수도 있고 여러 상황에서 죽을 수가 있는데

그런 상황마다,

이런식으로 외부에서 처리를 해주는 방식으로 하면은

이 부분을 매번마다 복붙을 하게되는 끔찍한 일! 이 발생이 할 것이다.

그리고 또 이펙트가 바뀌어서 시간을 수정을 해야하는데 어느부분에서는 수정을 못하면

버그가 발생을 하고 막 그런 여러 문제점들이 있다.

그래서 이런것들은 조심해서 다뤄야 한다.

(아마도 EffectManager라든가 따로 파서 관리를 하자??)

그래서 어디서 관리를 할지 항상 생각하는게 좋다.

그리고 실제로 일을 할 때도 보면은

모든 사람이 이런 부분들을 깔끔하게 관리를 할려고 고려를 하지 않는다.

그래서 일반적으로는 맞은 쪽에서 이런 처리를 하는 것이 자연스럽다.

그리고 CreatureController에 이렇게 하나 인터페이스를 파주도록 하자.

유지보수

CreatureController

이렇게 만들어주고

MonsterController가서

이렇게 구현하여 준다.

그러면 이제

이녀석을 사용을 하려면

아까 ArrowController부분에서 막 길게 써놨던 부분을

이렇게만 호출을 해주면된다.

다른데서도 이것을 사용하고싶으면 똑같이 하면됨

유지보수 굿!

Factory 패턴

우리가 지금은 ObjectManager에서 옵젝 만들어서

Add, 뭐이런식으로 하고있었는데

나중에는 "Factory 패턴"이라고 해가지고

해당 옵젝의 id의 몬스터를 만들어줄지 Add에서 정해주게 되면은

그것을 Add라는 함수 내부에서 만들어주는 것 까지하면 좋을 거같다.

(이것은 나아중에)

profile
공부 일기장으로 변해버린 블로그 (https://cjbworld.tistory.com/ <- 이사중)

0개의 댓글