본문 바로가기

Programming/Unity3D

Tower Defense 만들기 1장

Tracking 정보 수집

Defense게임에서 Tracking정보수집이라니...

이유인즉.

이 빨간부분을 기점으로 Enemy들이 순서대로 Tracking Point를 찾아가게 하기 위함입니다.

먼저 필드를 만드시고 Tracking Point를 만들어 줍니다.

 Enemy로 쓸 놈도 하나 만들어 주시고요~

tracking point를 7개 만들어 줬습니다.

오브젝트 이름은 trakingPoints0 ~6까지.

그럼 지금 부터 스크립을 짜보겠습니다.

일단 Empty를 하나 만들고 GameManager를 만들겠습니다.

여기서 GameManager의 역활은 TrackingPoint의 정보를 수집해오는 역할을 합니다.

일단 처음 사용하는 void Awake()함수 입니다.

void Awake()를 사용하는 이유는 void Start()와 비슷하지만 우선순위가 높습니다.

정보를 수집하지 않은체 Enemy를 움직일경우 문제가 발생할수있으니 처음 다른객체에 전해주는 정보를 수집스크립트는Awake()를 사용하시길 바랍니다.

각 trakingPoint정보를 가지고 올수있는 배열을 만듭니다.

먼저 총 갯수를 구해주기 위하여 MaxIndex에서 trakingPoints 라는 이름을 가진 녀석들의 갯수를 찾아주고난다음 배열에 MaxIndex만큼 선언해주고 순서대로 들어가게 만들어 줍니다.

그러면~~~~~~~

플레이 전.

 플레이 후.

trakingPoints정보를 가지고 오는 마법을 보실수 있을껍니다.

그러면 이걸 Enemy에서 참조하여 움직이게만 만들어 주면 끝~

Enemy스크립을 보면

Start시 GameObject에서 GameManager라는 오브젝트를 찾아 그오브젝트에 컴포넌트에 접근 합니다.

그리고 0번째 trakingPoint를 쳐다 보게 만듭니다....LookAt .....

그리고는 Updata에서 findPoint쪽으로 이동하게 만듭니다.

해당 Point에서 0.5 거리 안에 들어가면 다음 번호를 가진 객체로 findPoint를 바꾸고 그쪽으로 쳐다보게 만들고 이동합니다.

findIndex와 실제 trakingPoint의 배열숫자와 비교하여 크거나 같아지면 findIndex를 0으로바꿔 처음부터 다시돌게하는 무한루프를 만들어 보았습니다.

그결과...

 

정보를 찾아 순서대로..~~~

여기서 주의할점~

이동 속도가 너무 빠르거나 Distance거리고 너무 짧으면.

그 거리안에 들어오기전에 이동하여 지나가 버리는 경우가 있습니다.

그러면 안드로메다로 날아가버리니 주의 하시길..

'Programming > Unity3D' 카테고리의 다른 글

메모리 풀 클래스 만들어보기.  (0) 2015.02.24
FindChild 간단 설명  (0) 2015.02.16
[앨] SkyBox  (0) 2015.01.19
[앨] 5. 간단한 탱크게임 만들기  (0) 2015.01.19
[앨]유니티 단축키  (0) 2015.01.16