https://youtu.be/q4epArkvVnE?si=T04f-c0h8bGhScEM&t=1374
시작하기
Tools -> vHierarchy 메뉴를 열어 기능을 활성화하세요.
질문이나 피드백이 있으시면 언제든지 연락 주세요!
- Discord: discord.gg/rvC6ZgYtDK
Email: kubacho.lab@gmail.com
또한, 리뷰를 남겨주시면 큰 도움이 됩니다! 😊
기능 소개
아이콘 및 색상
객체를 Alt-Click하여 팔레트를 열고, 원하는 색상/아이콘을 클릭하여 설정할 수 있습니다.
Alt 키를 누른 상태에서 색상/아이콘을 설정하면 재귀적으로 적용됩니다.
우측 상단의 + 버튼을 클릭하여 아이콘을 추가하거나 색상을 조정할 수 있습니다.
탐색 바 (Navigation Bar)
객체를 드래그 앤 드롭하여 북마크하고, 북마크 해제하려면 드래그하여 제거하세요.
북마크한 객체를 클릭하면 해당 객체가 강조 표시됩니다.
↑ 버튼 클릭 시 모든 객체가 접힙니다.
씬 선택기 (Scene Selector)
씬 이름을 클릭하면 씬 선택 창이 열립니다.
컴포넌트 미니맵
계층 구조 오른쪽에 컴포넌트 목록을 표시합니다.
Alt-Click으로 컴포넌트 아이콘을 클릭하면 미니 편집기가 열립니다.
활성화 토글 (Activation Toggle)
마우스를 올리면 객체의 활성화/비활성화 토글 버튼이 나타납니다.
계층선 (Hierarchy Lines)
부모 객체에서 자식 객체로 선이 표시됩니다.
지브라 스트라이핑 (Zebra Striping)
행의 색상을 번갈아 표시하여 가독성을 높입니다.
미니멀 모드 (Minimal Mode)
기본 아이콘을 숨겨 더욱 깔끔한 인터페이스를 제공합니다.
단축키 목록
기본 부모 설정
프리팹을 씬에 드래그하면 해당 객체에 자동으로 부모가 설정됩니다.
객체 위에 마우스를 올리고 D 키를 누르세요.
활성화/비활성화 토글
객체 위에 마우스를 올리고 A 키를 누르세요.
포커스 (Focus)
객체 위에 마우스를 올리고 F 키를 누르면 해당 객체로 화면이 이동합니다.
삭제 (Delete)
객체 위에 마우스를 올리고 X 키를 누르세요.
확장/축소 (Expand or Collapse)
객체 위에 마우스를 올리고 E 키를 누르세요.
고립 모드 (Isolate)
해당 객체를 확장하고, 나머지 객체는 모두 접습니다.
객체 위에 마우스를 올리고 Shift-E 키를 누르세요.
모두 접기 (Collapse All)
계층 구조 창에 마우스를 올리고 Ctrl-Shift-E 키를 누르세요.
API 및 규칙
에디터 스크립트에서 아이콘과 색상을 설정할 수 있습니다.
VHierarchy.VHierarchy.SetIcon(cameraGameObject, iconName: "Camera Icon");
VHierarchy.VHierarchy.SetColor(cameraGameObject, colorIndex: 2);
또한, 아이콘과 색상을 자동으로 설정하는 규칙을 정의할 수도 있습니다.
[VHierarchy.Rule]
static void Rule(VHierarchy.ObjectInfo objectInfo)
{
if (objectInfo.gameObject.GetComponent<Camera>())
{
objectInfo.icon = "Camera Icon";
objectInfo.color = 2;
}
}
다음은 첫 번째 컴포넌트를 기반으로 자동 아이콘을 적용하는 규칙을 구현한 예제 스크립트입니다.
//AutoIcons.cs
#if UNITY_EDITOR
using UnityEngine;
using UnityEditor;
public class AutoIcons
{
[VHierarchy.Rule]
static void AutoIconsRule(VHierarchy.ObjectInfo objectInfo)
{
var components = objectInfo.gameObject.GetComponents<Component>();
if (components.Length == 1) return; // return if only has transform component
var firstComponentIcon = VHierarchy.VHierarchy.GetComponentIcon(components[1]);
objectInfo.icon = firstComponentIcon.name;
}
}
#endif