ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Unity3D] Prefab 실시간 생성하기 (Instantiate)
    Programing 2020. 7. 3. 22:12

    Unity3d를 하다보면 프리팹을 만들어 놓고, 실시간으로 불러서 사용해야 할 때가 있습니다.

    그럴때 사용하는 것이 인스턴스화(Instantiate) 입니다.

    Asstes 경로에 Resources 폴더를 생성하고 난 후에 하위 경로에 프리팹을 생성하기만 하면 준비가 끝납니다.

    그러면 간단한 방법으로 호출을 할 수 있습니다.

     

     

    public class prefabcopy : MonoBehaviour
    {

      GameObject prefab_obj;

        void Start()

        {

           prefab_obj = Resources.Load("Prefabs/prefab_sample") as GameObject;

        }

        void Update()
        {
            if (Input.GetKeyDown(KeyCode.A))
            {

              GameObject obj = MonoBehaviour.Instantiate(prefab_obj);

              obj.name = "clone";

              Vector3 pos = new Vector3(0, 0, 0);
              obj.transform.position = pos;
            }
        }
    }

     

     

    위의 이미지와 같이 Assets/Resources/Prefabs 폴더에 prefab_sample이라는 이름의 프리팹을 생성하고 난 후에

     

    Resources.Load("Prefabs/prefab_sample") as GameObject; 

     

    이 부분으로 지정된 프리팹을 GameObject 형태로 로드를 시켜줍니다.

     

    GameObject obj = MonoBehaviour.Instantiate(prefab_obj);

    obj.name = "clone";

    Vector3 pos = new Vector3(0, 0, 0);

    obj.transform.position = pos; 

     

     

    여기서 미리 로드된 프리팹을 객채화 시켜주는 것입니다.

    clone 이라는 이름과 함께 position은 0 으로 세팅 했습니다.

     

    기호에 따라 이름과 위치, 크기, 각도 등을 name, position, scale, rotation 등을 통해 다양하게 변경 할 수 있습니다.

     

     

     

     

    'Programing' 카테고리의 다른 글

    [Unity3D] Timer 만들기  (0) 2021.07.23

    댓글

Designed by Tistory.