스크립트에서 이미지나 객체를 불러오는 방법은 여러가지가 있지만 가장 적절한 방법이 Resources를 사용한다.
Resources.Load<GameObject>("경로/파일 이름");
Resources.LoadAll<GameObject>("경로/파일 이름");
private Dictionary<string, GameObject> _uiList = new Dictionary<string, GameObject>();
private Canvas _canvas;
private Transform _canvasTransform;
private void InitUIList()
{
GameObject[] gameobjects = Resources.LoadAll<GameObject>("Prefabs/UI");
foreach (GameObject obj in gameobjects)
{
GameObject uiobject = Instantiate(obj, _canvasTransform, false);
_uiList.Add(uiobject.name, uiobject);
uiobject.SetActive(false);
}
}
해설 :
1. Resources/Prefabs/UI안에 있는 GameObject 타입의 객체들을 gameobjects에 저장합니다.
이미지등과 같이 Canvas안에 있어야 하는 객체는 위처럼 캔버스를 먼저 생성이후 윗 코드를 생성해주면 됩니다.
public T OpenUI<T>()
{
var Obj = _uiList[typeof(T).Name];
Obj.SetActive(true);
return Obj.GetComponent<T>();
}