using TMPro; using UnityEditor; using UnityEngine; using UnityEngine.UI; using XRLib; using XRLib.UI; [CustomEditor(typeof(PanelBase), true)] public class PanelBaseEditor : Editor { PanelBase pb; //1. pb transformÀÇ child Button ¸ñ·Ï cbList °¡Á®¿À±â //2. cbList¸¦ ¼øÈ¸ÇÏ¸ç ¹Ýº¹ //2-1. childButton ÀÇ gameObject.name string À» '_' ¹®ÀÚ·Î Split //2-2. SplitµÈ ¹®ÀÚ¿­ ¹è¿­¿¡¼­ °¡Àå ¸¶Áö¸· ¹è¿­ÀÇ ¹®ÀÚ¿­ÀÎ cbName °¡Á®¿À±â //2-3. cbNameÀ» childButton ÇÏÀ§ÀÇ TextMeshProUGUIÀÇ ÅØ½ºÆ®·Î »ðÀÔ public void OnEnable() { //base.OnInspectorGUI(); pb = target as PanelBase; } public override void OnInspectorGUI() { base.OnInspectorGUI(); //if (GUILayout.Button("Button Naming")) //{ // ButtonNaming(); //} //if(GUILayout.Button("Text Titleling")) //{ // TextTitleling(); //} } void TextTitleling() { //1. pb transformÀÇ child Text ¸ñ·Ï °¡Á®¿À±â TextMeshProUGUI[] textList = pb.transform.GetComponentsInChildren(); //2. child TextÀÇ gameObject.name À» '_'·Î Split foreach (var text in textList) { string[] nameSplit = text.gameObject.name.Split('_'); //3. SplitµÈ ¹®ÀÚ¿­ ¹è¿­¿¡¼­ ù¹øÂ° ¹è¿­ÀÇ °ªÀÌ "Title" ÀÏ °æ¿ì if (nameSplit[0] == "Title") { //4. ÇØ´ç childText¿¡ SplitµÈ ¹®ÀÚ¿­ ¹è¿­ÀÇ µÎ¹øÂ° ¹è¿­°ª ÀÔ·Â text.text = nameSplit[1]; } } } void ButtonNaming() { //1. pb transformÀÇ child Button ¸ñ·Ï cbList °¡Á®¿À±â Button[] cbList = pb.transform.GetComponentsInChildren