유니티

Resource Manager

코다람쥐 2022. 2. 3. 16:42

1. Resources 폴더

프리펩을 포함한 모든 리소소들은 Resources 폴더를 만들어서 관리하는 것이 편하다.

그리고 Resources폴더를 만들면 Resource클래스를 이용하여 필요한 리소스들을 코드로 불러 올 수 있다.

 

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

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}");
        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);
    }

}

기존의 Instantiate와 Destroy를 쓰면 오류가 났을 때 추적이 어렵기 때문에 Resourece Manager로 래핑작업을 해주었다.