[Go-Unity] 5-1. 생성 함수 Instantiate, Prefab ⭐

업데이트:

카테고리:

태그: , ,


Prefab, Instantiate, Quaternion, Euler

공부한 고박사의 유니티 기초를 복습하면서 정리.

1. 프리팹(Prefab)

게임(Hierarchy View)에 존재하는 게임오브젝트를 Project View에 파일로 저장해 둔 것

image

1. 원하는 형태로 게임오브젝트를 꾸며준다.(캐릭터,아이템 등)
2. Hierarchy View의 게임오브젝트를 ProjectView로 드래그&드롭한다.
3. Hierarchy View에 있는 게임오브젝트를 삭제한다.





2. Instantiate

    Instantiate(GameObject original);
    Instantiate(GameObject original,Vector3 position,Quaternion rotation);
  • Original 게임 오브젝트를 복제해서 생성
  • Original 게임 오브젝트를 복제해서 생성,복제본의 위치(position), 회전(rotation)설정

image

image

예제 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)

image

Quaternion.Euler

회전 정보

    Quaternion q = Quaternion.Euler(0,0,0);
  • 오일러 회전정보를 쿼터니온 회전 값으로 변경
  • 오일러, 쿼터니언 관련내용은 나중에 한번 정리해야겠다..


참고 : 유니티 TOP


📔

댓글남기기