728x90
Instantiate(프리팹)를 사용하면 프리팹 객체를 인스턴스화 할 수 있다.
public GameObject prefab;
void Start()
{
Instantiate(prefab);
}
Destory(프리팹, 몇초후 사라질지)를 사용하면 프리팹 객체 인스턴스 메모리를 해제할 수 있다.
public GameObject prefab;
GameObject tank;
void Start()
{
tank= Instantiate(prefab);
Destroy(tank, 3.0f);
}
프로젝트의 규모가 컨진다면 프리팹을 GameObject에 직접 연결하여 사용하기 힘들어진다.
그렇기 때문에 Resources파일에 Load를 사용하여 프리팹을 연결하여 사용한다.
Resources파일에는 소스를 제외한 모든 것 을 넣는 것이 효과가 좋다.
폴더 경로 - "Prefabs/프리팹명"
GameObject prefab;
GameObject tank;
void Start()
{
prefab = Resources.Load<GameObject>("Prefabs/Tank");
tank= Instantiate(prefab);
Destroy(tank, 3.0f);
}
Resource Manager
Manager을 만들어 사용하도록 하자
public class ResourceManager
{
public T Load<T>(string path) where T : Object
{
return Resources.Load<T>(path);
}
public GameObject Instantiate(string path, Transform parent = null)
{
//GameObject prefab = Load<GameObject>($"Prefabs/{path}");
GameObject prefab =Resources.Load<GameObject>("Prefabs/Tank");
if (prefab == null)
{
Debug.Log($"Failed to load prefab : {path}");
return null;
}
return Object.Instantiate(prefab, parent);
}
public void Destroy(GameObject go)
{
if (go == null)
return;
Object.Destroy(go);
}
}
728x90
'Unity' 카테고리의 다른 글
[Unity][방법] Object충돌_1(Collision) OnCollisionEnter, OnTriggerEnter, OverlapSphere(설정반경오브젝트 확인) 방법 (0) | 2022.10.05 |
---|---|
[Unity][팁] 폴더관리 (0) | 2022.10.04 |
[Unity] Prefab Variant(Base Prefab) 상속 프리팹 (0) | 2022.10.04 |
[Unity] Nested Prefab(중첩 프리팹) (0) | 2022.10.04 |
[Unity][개념,방법] Rotation과 캐릭터 회전 (0) | 2022.10.04 |