[유니티 강좌 8] 난수 구하기 Random.Range
지난 포스팅까지는 아군의 비행기를 움직이고 미사일 발사까지 해봤는데요. 이번에는 적의 출현과 움직임을 간단하게 넣어보겠습니다.
우선 적은 수평으로만 이동하지 않고 대각선으로도 이동하게 하구요. 화면에 적이 여러대 출몰할 수 있으므로 난수로 처리해서 각각의 이동속도와 이동 방향을 다르게 하겠습니다. 또한 적이 화면을 벗어나면 다시 초기화 되어 처음 위치에서 다시 나타나게 합니다.
유니티에서 난수는 다음과 같이 만듭니다.
a = Random.Range(작은수, 큰수) ▶작은 수 <= a <큰수
a는 작은 수는 포함되지만 큰 수는 포함되지 않는다는 것에 유의해야 합니다. 이때 작은 수와 큰수가 둘다 정수(int)이면 정수 난수가, 만약에 둘중의 하나가 실수(float)이면 실수형 난수가 만들어 지게됩니다.
스크립트를 작성해서 프리팹으로 만들어놓은 적에게 연결하도록 하겠습니다.
■ 전역변수와 지역변수
전역변수는 스크립트 전체에 통용되는 변수이며, 지역변수는 선언한 함수 내에서만 사용되는 변수입니다. 스크립트에서 처음에 선언한 변수는 모두 전역변수이며, 함수의 내부에서 선언한 변수는 모두 지역변수 입니다. 적의 경우 속도는 이동에 필요한 것이므로 전역으로 선언하고, 초기 위치는 한번 결정하면 변경할 필요가 없으므로 지역변수를 사용하였습니다.
적이 왼쪽, 위, 아래로 화면을 벗어나는 경우 처음 위치에서 다시 나타나게 처리하였습니다.
■ 스크립트 내용을 살펴보면..
1번은 적의 속도x, y 이구요. 2번은 적의 초기화, 3번은 이동속도 x, y 입니다. 4번은 좌측으로 이동하다가 x좌표 -37을 벗어나면 초기화 하는 과정입니다. 5번도 위(y=22), 아래(y=-20)를 벗어나면 초기화 하는 과정입니다. 6번은 속도와 최초 위치이구요. 7번은 최초의 위치를 설정한 것입니다.
스크립트를 적에게 연결하고 디자인 탭에 적을 여러대 배치하고 게임을 실행해 보겠습니다.
아직 충돌설정을 하지 않았기 떄문에 폭발하는 장면은 연출이 안됩니다. 이번 포스팅은 적이 랜덤하게 출현하고 움직이는 과정만 살펴봤습니다. 다음 포스팅에서 충돌과 폭발을 만들어 보도록 하겠습니다.