샤이유게 MYPI

샤이유게
접속 : 4198   Lv. 50

Category

Profile

Counter

  • 오늘 : 9 명
  • 전체 : 139930 명
  • Mypi Ver. 0.3.1 β
[Unity Engine] 유니티로 타워 디팬스 게임 만들기 - 다형성과 적 (0) 2014/09/18 PM 04:02
* 강의 보다는 제작노트 느낌으로 보시면 감사하겠습니다. (__)

적이 하나밖에 없는 게임은 흔하지 않다.

뭐 플래피버드 같이 심플하면서 대박을 칠 수 있는 게임이면
베스트겠지만 세계적 레벨의 창의성이 없다면
여러가지 적을 다양하게 구현하는 것을 피할 수 는 없을 것이다.

처음에는 일단 AI를 잘게 쪼개는 것 부터 시작할 것이다.
현재 AI는 다음과 같은 행동을 한다.



현재 AI자체가 Virtual로 되어 있어서 override할 수 있게 만들어 놓긴 했다.
하지만 대부분의 경우 적은 정해진 길을 따라 이동할 것이다.
새로운 적을 만들때 이 틀을 부시지 않고 부분적으로 새로 정의할 수 있도록
다음과 같이 AI를 다시 만들었다.



달라진건 별로 없고 AI의 각 기능들을 함수화 시켜서 virtual을 달아 놨을 뿐이다.
InitAction이라는 함수같이 없는 곳에 만들어둔 함수도 있긴하다.

이렇게 만들어 놓으면 자식클래스에서는 AI를 새로 디자인 할 필요 없이
이동하는 것을 바꾸고 싶다면 moveToDest를 Override해서 만들기만 하면
새로운 적을 만들 수 있을 것이다.

새로운 적 스크립트를 만들고 EnemyBasic을 상속 받은 다음
override 예약어를 적어 보자 C#에서 override를 친후 스페이스바를
한번 누르면 어떤 것을 override 할 수 있는지 알려준다.



방금 만들었던 moveToDest를 다음과 같이 다시 만들었다.
한꺼번에 이동하던 것을 거리1만큼 이동하고 0.4초를 쉬고를 반복하게
했다.



새로운 적이 어떻게 동작하는지 새로운 맵을 만들어서 보자
맵은 간단하게 5라인을 일직선으로 만들고
이벤트 스크립트는 제작중임으로 -_- 디버그 코드로
각각의 스타트 포인트에서 적을 리젠시키도록 했다.

5개의 라인중에서
1번라인은 ovrride해서 새로운 이동방식을만든 적을 띄었고
2번라인은 EnemyBasic 그대로인 적을 생성했다.



소스코드 : https://github.com/geniikw/CubeRushRoot-whole-Project-/

신고

 
X