갓똥
나는야 프로그래머
갓똥
전체 방문자
오늘
어제
  • 분류 전체보기 (186)
    • 프로그래밍 (146)
      • 자바 (9)
      • 안드로이드 (2)
      • 유니티 (20)
      • C++ (38)
      • C# (56)
      • HTML (2)
      • 파이썬 (3)
      • 자료구조 (2)
      • 알고리즘 (0)
      • 문제풀이 (4)
      • 디자인 패턴 (7)
      • 카카오톡 봇 (1)
      • 엑셀 (1)
      • 기타 (1)
    • 게임 (21)
      • 테일즈위버 (0)
      • 카이로소프트 (1)
      • 순위 (19)
      • 기타 (1)
    • 일상 (13)
      • 카페 (1)
      • 방탈출 (12)
    • 기타 (6)
      • 웃긴자료 (5)

블로그 메뉴

  • 홈
  • 방명록

공지사항

인기 글

태그

  • c# Thread
  • 게임 매출 순위
  • 2020년 게임 매출
  • C++ virtual
  • C# 예외 처리
  • 글로벌게임매출
  • c# collection
  • 강남 방탈출
  • c# unboxing
  • 자바
  • C++
  • 게임 디자인 패턴
  • c# 코루틴
  • 알고리즘
  • C# boxing
  • 게임매출순위
  • pc게임 순위
  • 전세계게임매출순위
  • C++ 상속
  • 전세계 게임 매출
  • 모바일 게임 순위
  • c# delegate
  • C++ 소멸자
  • 롤 골드그래프
  • 유니티 그래프 그리기
  • Unity Graph
  • c# coroutine
  • pc 게임 순위
  • 유니티 그래프
  • 유니티 골드그래프

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
갓똥

나는야 프로그래머

프로그래밍/유니티

[유니티] Hierarchy의 오브젝트 Path복사

2022. 3. 9. 22:06
728x90
반응형

UI작업할 때 부모 Transform을 기준으로 자식을 찾아 원하는 오브젝트에 접근하여 작업을 했다.

근데 각 오브젝트의 Path가 바뀌어 수정할 일이 생길 수 있고 일일이 하드하게 path를 적긴 힘드니

변수를 만들어 path를 관리했다.

 

그런데 이 path가 예를들어, UI에 표기해야 될 것들을 생각해보면

골드, 보석, 레벨, 경험치, 힘, 민첩, 지능 등등의 텍스트

능력치, 장비, 강화, 스킬, 펫 등등의 버튼

슬라이더... 사운드... 등등의 아주 여러가지의 path를 가져와야 한다.

 

이 path를 한땀한땀 적긴 귀찮아서 처음에 우클릭 후 copy path를 하면 path가 복사되는 것을 만들었는데

이마저도 귀찮아 Hierarchy의 오브젝트를 클릭만 하면 알아서 path가 복사되는 것을 만들어 까먹을까봐 올린다.

 

public static class CopyPathMenuItem
{
    [MenuItem("GameObject/Copy Path")]
    private static void CopyPath()
    {
        var obj = Selection.activeGameObject;
 
        if (obj == null)
        {
            return;
        }
 
        var path = obj.name;
 
        while (obj.transform.parent != null)
        {
            obj = obj.transform.parent.gameObject;
            path = string.Format("/{0}/{1}", obj.name, path);
            path = path.Substring(1, path.Length - 1);
        }

        EditorGUIUtility.systemCopyBuffer = path;
    }
 
    [MenuItem("GameObject/Copy Path", true)]
    private static bool CopyPathValidation()
    {
        // We can only copy the path in case 1 object is selected
        return Selection.gameObjects.Length == 1;
    }
}
 
[InitializeOnLoadAttribute]
public static class CopyObjectPath
{
    static CopyObjectPath()
    {
        EditorApplication.hierarchyWindowItemOnGUI += OnHierarchy;
    }

    private static GameObject select = null;
    private static void OnHierarchy(int instanceid, Rect selectionrect)
    {
        var go = Selection.activeGameObject;
         
        if (go == null)
            return;

        if (select == go)
            return;

        select = go;
        var path = go.name;
 
        while (go.transform.parent != null)
        {
            go = go.transform.parent.gameObject;

            if (go.name.Contains("Canvas"))
                continue;
             
            path = string.Format("/{0}/{1}", go.name, path);
            path = path.Substring(1, path.Length - 1);
        }

        EditorGUIUtility.systemCopyBuffer = path;
    }
}

 

728x90
반응형

'프로그래밍 > 유니티' 카테고리의 다른 글

[유니티] 슬라이더 값이 0인데 이미지가 남아있을 때  (0) 2022.08.04
[유니티] 터치 이펙트 (Click Particle)  (0) 2022.07.12
[유니티] MonoSingleton  (0) 2022.01.14
[유니티] 롤 골드그래프를 만들어보자(4) - 최종 코드  (0) 2021.08.12
[유니티] 롤 골드그래프를 만들어보자(3) - 그래프 내부 채우기  (2) 2021.08.12
    '프로그래밍/유니티' 카테고리의 다른 글
    • [유니티] 슬라이더 값이 0인데 이미지가 남아있을 때
    • [유니티] 터치 이펙트 (Click Particle)
    • [유니티] MonoSingleton
    • [유니티] 롤 골드그래프를 만들어보자(4) - 최종 코드
    갓똥
    갓똥
    공부하며 알아가는 내용을 정리해 봅니다.

    티스토리툴바