이번 예제는 간단하게 3D Object인 Plane과 Cube를 사용하였으며
Cube는 기본형 Cube이고 Prefab화 되어있습니다.
여기서 Prefab(프리팹)이란 프로젝트 에셋에 저장된 사전 구성 오브젝트를 말합니다.
(프리팹을 만드는 방법은 Hierarchy에서 프리팹화 하려는 오브젝트를
Project 폴더로 드래그 앤 드롭하면 간단히 하실 수 있습니다.)
Ex_09 스크립트를 Ex_09_Instantiate 오브젝트에 적용하였습니다.
Instantiate란
Instantiate은 게임 오브젝트의 클론을 생성하는 함수입니다.
프리팹 복제 상황에서 자주 사용합니다.
Instantiate은 두 가지 매개변수가 있는데
첫째는 Instantiate될 오브젝트
둘째는 새로운 클론을 제공하는 위치와 회전 값입니다.
실행 화면을 보고 바로 코드를 보도록 하겠습니다!
실행 화면을 보시면 마우스를 클릭할 때마다
Cube가 랜덤한 위치에서 생성되는 것을 확인하실 수 있습니다.
이를 코드로 표현을 하면
Update() 안에 마우스 클릭할 때마다 Cube를 랜덤한 위치에 생성해주세요!라고 하면 되겠죠?
Instantiate를 사용하여 Cube를 생성하기 위해 9번 줄에 GameObject를 Public 변수로 선언하고,
랜덤한 위치를 만들어 주기 위해 Transform 변수 randomT를 하나 만든 뒤
16번 줄처럼 randomT에 Vector3()와 Random.Range()를 사용하여 난수를 생성합니다.
여기서 Random.Range()는 예를 들어 () 안에 -1, 1(int)을 쓰셨다면 -1과 0 중 하나의 값이 선택되고
-1.0f(float)와 1.0f(float)를 쓰셨다면 -1 <= x <= 1의 x 값이 나오게 됩니다.
int형과 float형의 차이니 알아두시면 좋겠습니다.
Instantiate의 두 번째 변수는 위치와 회전값임으로
randomT의 position과 rotation을 이용하여 17번 줄과 같이 표현합니다.
위 내용은
https://unity3d.com/kr/learn/tutorials/topics/scripting/instantiate?playlist=17117
을 참고하였습니다.
'Unity > 기초 예제' 카테고리의 다른 글
유니티 Physics Materials 물리 재질 간단한 예제 유니티 기초 (0) | 2021.05.26 |
---|---|
유니티 Invoke InvokeRepeating CancelInvoke 함수반복호출 간단한 예제 유니티 기초 (0) | 2021.05.25 |
유니티 Destroy 오브젝트 제거 간단한 예제 유니티 기초 (0) | 2021.05.20 |
유니티 Trigger을 이용한 오브젝트 공중 부양 간단한 예제 유니티 기초 (0) | 2021.05.12 |
유니티 Collider Trigger 오브젝트 충돌 처리 간단한 예제 유니티 기초 (0) | 2021.05.10 |