Programming/Unity
에디터 윈도우 커스텀하게 변경하기
Inner-Peace
2021. 3. 24. 17:22
반응형
using UnityEngine;
using UnityEditor;
[InitializeOnLoad]
public class CustomHierarchy : MonoBehaviour
{
static CustomHierarchy()
{
EditorApplication.hierarchyWindowItemOnGUI += HandleHierarchyWindowItemOnGUI;
EditorApplication.projectWindowItemOnGUI += HandleProjectWindowItemOnGUI;
}
private static void HandleHierarchyWindowItemOnGUI(int instanceID, Rect selectionRect)
{
var obj = EditorUtility.InstanceIDToObject(instanceID) as GameObject;
if (obj != null)
{
if (obj.name.Equals("name"))
{
// 배경색 바꾸기
EditorGUI.DrawRect(selectionRect, new Color(0.01f, 0.4f, 0.25f, 0.5f));
//라벨 그리기
Rect offsetRect = new Rect(selectionRect.position, selectionRect.size);
EditorGUI.LabelField(offsetRect, obj.name, new GUIStyle() {
normal = new GUIStyleState() { textColor = Color.red },
fontStyle = FontStyle.Normal
});
}
}
}
private static void HandleProjectWindowItemOnGUI(string guid, Rect selectionRect)
{
string fileName = AssetDatabase.GUIDToAssetPath(guid);
var go = AssetDatabase.LoadAssetAtPath(fileName, typeof(GameObject));
if (go != null && go.name.Contains("name"))
{
// 배경색 바꾸기
EditorGUI.DrawRect(selectionRect, new Color(0.01f, 0.4f, 0.25f, 0.5f));
}
}
}
EditorApplication
반응형