[Unity] 게임 실행 시 오브젝트의 Clone 텍스트 없애기

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해야 한다.

좋은 웹페이지 즐겨찾기