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;
}
GameObject go = Object.Instantiate(prefab, parent);
int index = go.name.IndexOf("(Clone)");
if (index > 0)
go.name = go.name.Substring(0, index);
return go;
}
기존 Instantiate 함수를 사용하면 게임 실행 시 오브젝트의 이름에 (Clone)이라는 텍스트가 붙는다.
그대로 사용해도 상관은 없지만 보기에 불편하기에 SubString() 함수를 사용해 (Clone) 텍스트를 삭제했다.
GameObject go = Object.Instantiate(prefab, parent);
int index = go.name.IndexOf("(Clone)");
if (index > 0)
go.name = go.name.Substring(0, index);
이 부분이 텍스트를 삭제하는 역할을 한다.
이 때, return 시에 함수 내에서 인스턴스화 한 GameObject go를 return해야 한다.