타워의 공격력만큼의 피해를 피해자에게 전달하는 것이다.
여기서 전달하는 방법으로 몇가지 나누어서 생각해보자 편의를 위해서
다음과 같이 분류를 나누었다.
해병식 : 공격시 바로 피격자에게 Effect 생성
해병식(改) : 총구에서 Raycast를 해서 첫번째 감지한 오브젝트에 데미지를 줌 중간에 벽이 있을경우라던가...
불곰식 : 미사일이 날아감 그런데 맞을 피격자가 정해져 있음
카타펄트식(워3) : 미사일을 발사 후에 미사일이 충돌체크를 함 피하는것이 가능
각각 적당한 이름을 붙이고 클래스를 다음과 같이 만들 것이다.
여기서 Bullet Basic의 이름을 IBullet으로 바꾸고 클래스가 아닌 인터페이스로 설계해 보자
인터페이스는 추상클래스의 하위호완이라고 할 수 있는데 외부에서 해당객체에게
공통적으로 요구할 수 있는 명령을 선언하면 된다. 예를들어 총알이 가지고 있어야할
메서드는..
- 타워는 총알에게 피격자를 공격할 것을 요구한다.
-
이 정도가 있을 것이다. 공격하는 방식 데미지를 주는 방식 등등을
다르게 만든다면 여러가지 효과를 주는게 가능 할 것이다. 이제 코딩을 시작하자
여기서 상기해야할 것은 필자가 완벽하게 설계를 하고 만드는게 아니라
부모클래스의 스팩이 자꾸 변한다는 것이다. 안좋은 습관이다. -ㅁ-
* SendAttackMessage() 제거
아주 간단한 Bullet Interface이다. 가끔씩 C#을 하면 보이는 'i'가 붙은 뭐시기
예를들어 IEnumerator 같은 것들은 전부 인터페이스이다.
이것을 상속받은 bullet을 만들어보자 일단 InstantBullet 하나만 만들것이다.
MonoBehaviour,IBullet를 상속받은 것을 볼 수있고 IBullet에서부터 받은
인터페이스를 구현한 것을 알 수있다. 여기서 잘못 구현한것은
총알에 적에게 데미지를 보내는 부분은 구지 인터페이스에서 추가할 필요가
없다는 것을 알 수 있다. IBullet에서 SendAttackMessage를 지워주자.
대충 만들었으면 파티클을 추가하고 적 HP를 한 10정도에 공격력1 정도로 해놓고
돌려보자
어제 올릴려고 태극기를 달았는데(...) 늦었다. -ㅁ-;
ps. 하.. 지금까지 게시물쓰는 것과 만드는걸 동시에 했는데 이제
구현다하고 적어야 겠네요.-_-; 글이 너무 어수선...