친절한효자손 취미생활

[유니티 기초] 유니티로 비행시뮬레이션 게임 만들기 01

- 비행기 오브젝트에서 키보드 누르면 미사일 발사하기 -



이번엔 제목이 좀;;; 거창하긴 한데요,

사실 별 것 업습니다만.... 요새 유니티 수업이 흥미진진해지고 있어서요~ ㅎㅎㅎ


아무튼! 한번 구현해 보도록 할께요.

비행기에서 스페이스바를 누르면, 미사일이 나가도록 구현해 보도록 하겠습니다.




지난시간에 이은 수업인지라, 본 내용을 제대로 이해하시려면,

제 카테고리 내용에 보시면, 유니티엔진 항목만 따로 있습니다.

전 강좌들을 모두 숙지하신다면, 이해가 더욱 빠릅니다.





우선, 미사일 FBX를 어셋스토어에서 적당한 것으로 다운을 받습니다.

아니면 인터넷 구글링을 통해 받으셔도 됩니다.





제가 받은 미사일 FBX는 이겁니다.

끌어다 놓으면, 자동으로 머테리얼도 등록이 되구요~!





원본은 이것입니다.

이 3가지를 그냥 드래그 해서 놓으믄 됩니다~!





미사일 모양의 그림을 드래그 하세요~!

이렇게 화면에 생성이 됩니다.





또한, 미사일에 텍스쳐를 입히기 위해서,

이렇게 들어가 주세요^^





지난시간에 설명드렸던...배경에 텍스쳐 입히듯~

저기 텍스쳐 상자안에 두가지 텍스쳐를 입혀주세요.





이렇게 하면 됩니당^^

번호 순으로 진행하시고, 마무리로 Fix Now 를 눌러주셔야 합니다.





이렇게 두 가지 오브젝트를 완성시켰습니다.





이제, 미사일과 비행기의 기준축이 있어야겠지요???

비행기의 정면은 현재 Z 축 이니까, Z축을 제외한 나머지 축의 수치가 미사일이랑 비행기가 같아야 합니다.


현재 비행기가 2 / 2 / 2 이므로,





Z축 빼고 나머지 축도 미사일도 같게 해주시면~ 정중앙에 위치하겠지요???





자, 그리고 미사일 스크립트를 만들겠습니다.

스크립트 하나 만들구요~!





미사일이동 스크립트를 만들겠습니다.





회전은 로테이션 (rotation) 이었죠?

이번엔 Translate 지난시간에 배웠죠? 이동하는 명령어 입니다.





네. 스피드는 적당히 정해 주시고~!

한번 플레이를 해 보도록 하죠^^



0


이렇게 미사일이 발사가 됩니다^^ ㅎㅎㅎ 재미있네요~!





이제, 미사일 오브젝트를 활성화를 해보도록 하겠습니다.


여기서 보이는 모든 물체는, 사실 형체는 없습니다.

그래서, 실제로 존재하는 오브젝트로 만들기 위한 과정이라고 할 수 있죠!





미사일에 형체를 만들어 주었고,

자세한 사항은, 오른쪽에 나오죠? 여기에 보시면, 중력 항목에 체크가 자동으로 되어 있습니다.


중력이 적용되면 어떻게 미사일이 발사될까용???



0


이렇게, 한없이, 아래로 쭈욱~ 떨어지게 됩니다.





그렇기 때문에, 중력을 체크를 풀어줘야 겠지요?

미사일 이니까요^^;





그리고, 물리적으로 만들어 줘야 하므로, 미사일을 선택한 상태에서,

Component > Physics > Box Collider 로 들어갑니다.


박스 콜리더 말고도 다른 항목들이 여러개 있는데,

가장 기본부터 시작을 해 볼께요.





그러면, 미사일 주변에 이렇게 녹색선분의 직육면체가 형성이 됩니다.


이 부분이 다른 오브젝트랑 만나게 되면

폭발한다던지, 부서진다던지 하는 이펙트를 줄 수 있습니다.





마찬가지로, 박스 크기를 키우거나 줄일 수 있습니다.

중심점을 이동시킬 수도 있습니다.





이제 미사일은, 발사시에만 보여야 겠으니,

현재 화면에서는 미사일의 실체를 지우도록 할께요.


우선, 어셋최상위로 가셔서 박스를 하나 만듭니다.

이름은 prefabs 라고 지어줬습니다.





자~ 미사일 오브젝트를 이렇게 드래그해서 방금 만든 폴더에 넣어줍니다.

그리고 미사일 오브젝트는 지워주세요.





빈 오브젝트를 하나 만들고,

이름을 미사일 이라고 바꿔줍니다.





미사일 한번 더 수정^^; FireMissile 이라고 했어요.

그리고, 우주선의 객체오브젝트 (하위오브젝트) 로 만들어 줍니다.


드래그해서 우주선 위에 올리면 자동으로 들어가 집니다.





미사일 발사 스크립트를 만들어 줘야 겠지요?

빈 스크립트를 만들고, 빈 오브젝트에 끌어다 놓아주세요.


FireMissile 이라고 이름을 지어줬습니다.





스크립트는 이렇게 만들어 주었습니다.

스페이스를 계속 누르고 있을때마다 미사일이 발사되는??


우선 미사일이 발사가 잘 되는지 부터 확인할 것이 아니라,

스페이스가 정상적으로 누르고 있으면 실행이 잘 되는지 확인을 할 필요가 있습니다.





음음~ 잘 실행됩니다^^





자, 본격적으로 아까 등록한 미사일 오브젝트를 이제, 발사스크립트에 등록시켜봅니다.


스크립트는 이렇게 구성을 합니다.


참고로, GetKey 와 GetKetDown 의 차이는,

스페이스를 계속 누르고 있으면 계속 발사되느냐, 한번 누를때마다 하나씩 발사되느냐 그 차이 입니다.





이렇게 구성을하면, 저기 초록색 칸 안에 None (GameObject) 라고 항목이 보이실 겁니다.

그곳에 아까 넣어둔 미사일을 그대로 드래그해서 넣어주세요.





그리고나서, 발사스크립트를 마무리 해 줍니다.


밑에 빨간박스에 보시면, Instantiate 라는 명령어가 바로 발사명령어 이고,

괄호안의 값은, 비행기가 계속 움직이고 있으니, 그 비행기의 위치에 따라 회전과 위치값이 바뀌므로 거기에 맞게끔 발사되라~

뭐...요약하면 그런 뜻인데요^^; 그냥 이렇게 알고 계심 될 듯 합니다.;;; 뜻을 알려면 복잡.....



0


그러면, 지난시간에 배웠던 비행기의 회전과 이동에 따른 미사일이 적절히 발사가 되고 있음을 확인하실 수 있구요~

연속으로 빨리 누르면, 먼저 발사된 미사일에 부딫쳐서 미사일들의 회전축과 방향이 바뀌어서 랜덤으로 움직이는 것을 확인하실 수 있습니다.


ㅋㅋㅋ 이런 미사일도 재밌네요~! 필살기도 좋을듯???



자! 이렇게 해서, 오늘은 미사일 발사까지 해 보는 연습을 하였습니다.

앞으로 배울때마다 바로바로 올릴 수 있도록 할께요^^



공유하기

facebook twitter kakaoTalk kakaostory naver band