유니티 화면에서 버튼을 한 번 누를때마다 게임오브젝트를 하나씩 화면서 랜덤한 위치에서 생성하려고 한다.


먼저 게임오브젝트를 동적으로 생성하는 것은 이 블로그를 참조했다.


Instantiate와 Destroy 함수 사용하기


생성하는 것은 Instantiate()함수를 사용한다고 한다. 


그런데 어떻게 화면의 랜덤한 위치에 게임 오브젝트를 생성할까?


먼저, 랜덤 함수를 사용하기 위해 Random.Range(min,max)를 사용한다.


그럼, 화면의 크기를 어떻게 구할까?


만약, 개발 환경이 800 * 1280 해상도라고 


float randomX = Random.Range(0f, 800f); //적이 나타날 X좌표를 랜덤으로 생성해 줍니다.
float randomY = Random.Range(0f, 1280f); //적이 나타날 X좌표를 랜덤으로 생성해 줍니다.


로 한다면.


x축으로 0에서 800 사이의 난수,

y축으로 0에서 1280 사이의 난수가 나오게 된다.


그 밑에 


GameObject enemy = (GameObject)Instantiate(obj, new Vector3(randomX, randomY, 0f),
Quaternion.identity);



위 링크에서 보듯, 


첫 번째 파라미터에 복제(clone)할 프리팹 객체를 obj 위치에 넣고


두 번째 파라미터에 생성될 오브젝트의 위치,


세 번째에 회전인데 없으므로 기본인 Quaternion.identity 을 작성하면 된다.


Posted by sungho88
,