본문 바로가기

Programming/Unity3D

[앨] 5. 간단한 탱크게임 만들기

앞에서 공부한걸 이용하여 간단한 탱크시뮬레이션을 만들어보겠습니다.

일단 에셋스토에에서 탱크 모델링을 받아보겠습니다.

Panzer_II_Ausf_F 모델로~~~

멋지다....

그럼 기본적으로 이동 회전에 관련해서 작업하겠습니다.

이동은 기본적으로 앞에서 했던 방식대로하는데.

탱크이므로 포탑과 주포의 회전이 있어야겠고 캐터필러역시 돌아가야겠죠.

일단 주포를 상하로 회전하기위해 Empty를 하나 설정하겠습니다.

주포를 움직이기 위해서 주포의 피봇축을 포탑과 연결된 곳에 설치하겠습니다.

포탑도 회전해야겠죠.

이 2개는 로테이션 회전으로 구현하겠습니다.

캐터필러는 로테이션으로 힘들기때문에 UV 애니메이션으로 구현하겠습니다.

먼저 포탑부터 회전 시켜보겠습니다.

Q,E를 통하여 포탑의 로테이트 값을 360도 회전시킵니다.

다음으로 주포를 위아래로 회전시켜보겠습니다.

일단 주포는 360도를 회전하면 안되기 때문에

localEulerAngles 로 로테이션 값을 받아 옵니다.

받아온 로테이션값으로 조건을 주어 회전에 제약을 줍니다.

다음으로 캐터필러를 구현해보겠습니다.

여기서 주의할점은 탱크의 구조상 제자리에서 360도 회전이 가능합니다.

이때 좌우 캐터필러는 반대로 움직이기때문에 좌우 캐터필러를 따로 구현합니다.

키를 입력받아 uv애니메이션하는 간단한 원리입니다.

uv애니메이션을 구현하는 방법은.

renderer.material.SetTextureOffset 으로 구현하면 됩니다.

도큐먼트를  찾아보면 매개변수로 _MainTex랑 Vecter2(offset,0)이 들어갑니다.

움직일 택스쳐의 종류와 회전속도를 정할수 있습니다.

전 디퓨즈맵과 노말맵을 동시에 움직이기때문에 각자 만들었습니다.

이런식으로 구현한 탱크 입니다.

 

다음은 포 발사를 해보겠습니다.

주포 입구에 Empty를 만들어줍니다.

포가 생성될 위치입니다.

Maketest에서 했듯이 인스턴스로 생성해주면 됩니다.

 

 

그리고 포에는 타켓에 맞았을때 파편과 같은 효과를 내기위해 임시로 파편을 만들어 보겠습니다

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

Tower Defense 만들기 1장  (0) 2015.02.12
[앨] SkyBox  (0) 2015.01.19
[앨]유니티 단축키  (0) 2015.01.16
[앨] 4.MakeTest  (0) 2015.01.16
[앨] 3.MoveTest  (0) 2015.01.15