친절한효자손 취미생활

[유니티기초] 비행기게임 만들기 05 - Coroutine (코루틴) 반복되는 미사일


본 내용은,

Unity 3D Coroutine 반복되는 명령어 사용,

유니티 비행기 시뮬레이션 - 키를 계속 누르면 미사일이 연속으로 발사되게 하기,

와 관련이 있습니다.




지난시간에 이어서 오늘은 간단히,

미사일 발사를 키보드를 누를때마다 발사가 되는게 아닌,

누르는 동안에 연속발사되는 미사일을 구현해 보도록 할께요.


본 내용은, 제가 지금까지 유니티 강좌를 써 놓은 내용들을 처음부터 쭈욱~ 보셔야

이해가 쉽게 되는 부분이므로, 유니티를 처음 접하시는 분들께서는

오른쪽 카테고리에 있는 유니티 항목을 클릭하시어, 한번 쭉~ 학습해 보세요^^





지난시간에 이어서 쭈욱~ 계속되는 내용이구요,

파티클 이펙트와 사운드를 넣는 방법을 배웠죠???


이번시간에는 연속미사일을 해볼텐데요,


미사일 부분이 연속으로 나가게 해 줘야 하잖아요?

그러므로,왼쪽 오브젝트에서 우주선에 종속되어 있는 미사일을 클릭해서,

미사일발사 의 빈 오브젝트 안에 들어있는 미사일발사 스크립트를 우선 사용하지 않게 해 둬야 합니다.


왜냐면, 지금 그 스크립트는 스페이스를 누를때마다 발사되는 스크립트 이므로~!

별도로 하나를 다시 스크립트를 추가해줄 거에요.





자, 스크립트 폴더에서 새로운 스크립트를 생성해 줍니다.





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





그리고, 새로 생성한 오토파이어 스크립트를 드래그해서, 새롭게 추가해 주시구요~





우선, 발사속도와 미사일 게임 오브젝트에 종속하게 해 줍니다.

저 두가지 명령어를 써주시구요~!


public var firespeed = 0.25;
public var Missile : GameObject





그리고, 미사일 오브젝트를 저 부분에 끌어다 놓습니다.

미사일에 발사스크립트를 연결시키는 과정이지요.





자, 그리고, Update 함수 밑에, 새로운 함수를 하나 더 추가합니다.

AutoFire() 함수이구요,


for ( ; ; ) 이것은, 포문인데,

참이냐 거짓이냐를 만들어 줘야 되는데, 안에 아무것도 없죠?

그렇다면 이건 항상 참이라는 뜻입니다.


포문 안에 if 문을 넣고, GetKeyDown 이 아닌, GetKey 로 입력해 주셔야  하구요,

Instantiate 를 써서, 미사일 좌표에 항상 종속되게 설정해 주는 명령어를 넣습니다.


yield WaitForSeconds 명령어는 반복되는 간격속도를 조절해 줍니다.



주의하실 것은, 저 괄호를 잘 닫고 열어야 하는것 이고~

대/소문자 에도 주의해 주셔야 합니다.


유니티 내부 명령어는 대/소문자가 명확하구요,

var 에 변수로 지어주는건 대/소문자 상관은 없습니다. 사용자 마음 이구요~!

이 두개의 차이를 잘 기억해 주세요.



0


그럼, 이렇게 반복되는 연속미사일 발사가 성공적으로 이루어지는 것을 확인하실 수 있습니다^^

아주 멋지죠??? 흐흐흐~!



오늘은 요기까지하구, 이제 다음시간부터는 적군 비행기가 출현하는 것을 해 보도록 할께요.

그럼 끝까지 최선을 다하여 훌륭한 결과가 나오기를~!!!!




공유하기

facebook twitter kakaoTalk kakaostory naver band