[Go-Unity] 5-1. 생성 함수 Instantiate, Prefab ⭐
카테고리: Go Unity
Prefab, Instantiate, Quaternion, Euler
공부한 고박사의 유니티 기초를 복습하면서 정리.
1. 프리팹(Prefab)
게임(Hierarchy View)에 존재하는 게임오브젝트를 Project View에 파일로 저장해 둔 것
1. 원하는 형태로 게임오브젝트를 꾸며준다.(캐릭터,아이템 등)
2. Hierarchy View의 게임오브젝트를 ProjectView로 드래그&드롭한다.
3. Hierarchy View에 있는 게임오브젝트를 삭제한다.
2. Instantiate
Instantiate(GameObject original);
Instantiate(GameObject original,Vector3 position,Quaternion rotation);
- Original 게임 오브젝트를 복제해서 생성
- Original 게임 오브젝트를 복제해서 생성,복제본의 위치(position), 회전(rotation)설정
예제 1
objectspawner.cs
public class objectspawner : MonoBehaviour
{
[SerializeField]
private GameObject boxprefab;
public float timediff;
private Rigidbody2D rigid2D;
float timer =0;
private void Awake() {
Quaternion rotation = Quaternion.Euler(0,0,45);
Instantiate(boxprefab); //1번째 생성
Instantiate(boxprefab,new Vector3(2,3,0),Quaternion.identity); //2번째 생성
//3번째 생성
// 오브젝트, 위치 , 회전값 Quaternion.identity-> 0,0,0
Instantiate(boxprefab,new Vector3(2,3,0),rotation);
//4번째 생성
//생성하면서 이름지정, 내용변경
GameObject clone = Instantiate(boxprefab,Vector3.zero,rotation);
//방금 생성된 게임 오브젝트
clone.name = "box 001"; // 이름 변경
clone.GetComponent<SpriteRenderer>().color=Color.blue; // 색
clone.transform.position = new Vector3(2,1,0); // 위치
clone.transform.localScale = new Vector3(3,2,1); // 크기
}
}
- 1번은 그냥 box , 2번은 (2,3)위치로 이동한 box, 3번은 2번을 45도 돌린 box
- 2,3번이 합쳐져서 하나의 도형처럼 보인다.
- 4번은 이름지정, 색, 위치(2,1) 크기(3,2,1)
Quaternion.Euler
회전 정보
Quaternion q = Quaternion.Euler(0,0,0);
- 오일러 회전정보를 쿼터니온 회전 값으로 변경
- 오일러, 쿼터니언 관련내용은 나중에 한번 정리해야겠다..
댓글남기기