유니티 화면에서 버튼을 한 번 누를때마다 게임오브젝트를 하나씩 화면서 랜덤한 위치에서 생성하려고 한다.
먼저 게임오브젝트를 동적으로 생성하는 것은 이 블로그를 참조했다.
생성하는 것은 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 을 작성하면 된다.
'게임 개발 관련 > Unity3D' 카테고리의 다른 글
[유니티] 유니티3D와 유니티2D의 차이점이 무엇일까.. (0) | 2018.03.18 |
---|---|
[유니티] 콜라이더(Collider)와 트리거(Trigger) 충돌 체크 함수 (0) | 2018.03.07 |
[유니티] UGUI - (1) 캔버스(Canvas)의 개념과 중요성 (0) | 2018.03.07 |
[유니티] 마우스 드래그해서 게임오브젝트 끌어 이동하기 (1) | 2018.03.05 |
[유니티] 화면 밖으로 게임 오브젝트 못 나가게 하는 코드... (0) | 2018.02.27 |