후들후들

foodybug.egloos.com

포토로그



GameObject의 Hierarchy 상의 경로 얻기 Unity


디버그를 위해 코드에 로그를 삽입할 때 어느 오브젝트에 attach됐는지 알면 편리한 경우가 많습니다.

Unity3d에서 따로 제공하는 함수는 없고 직접 코드를 작성해야 합니다.

아래와 같은 코드로 Hierarchy상에 존재하는 오브젝트의 경로(상위 오브젝트의 이름들)를 얻을 수 있습니다.


public static string GetGameObjectPath(GameObject obj)
{
    string path = "/" + obj.name;
    while (obj.transform.parent != null)
    {
        obj = obj.transform.parent.gameObject;
        path = "/" + obj.name + path;
    }
    return path;
}


출처는 아래의 사이트입니다.


위의 코드를 확장메소드를 이용하면 좀 더 전역적으로 사용할 수 있습니다. 저는 아래와 같이 사용합니다.


public static string GetFullPath(this Transform trn)
{
string path = "/" + trn.name;
while (trn.transform.parent != null)
{
trn = trn.parent;
path = "/" + trn.name + path;
}
return path;
}





덧글

댓글 입력 영역