Files
Studio/Assets/Editor/WI/PanelBaseEditor.cs

84 lines
2.3 KiB
C#
Raw Normal View History

2025-02-19 17:24:26 +09:00
using TMPro;
using UnityEditor;
using UnityEngine;
using UnityEngine.UI;
2025-02-21 11:57:09 +09:00
using XRLib;
using XRLib.UI;
2025-02-19 17:24:26 +09:00
[CustomEditor(typeof(PanelBase), true)]
public class PanelBaseEditor : Editor
{
PanelBase pb;
//1. pb transform<72><6D> child Button <20><><EFBFBD><EFBFBD> cbList <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//2. cbList<73><74> <20><>ȸ<EFBFBD>ϸ<EFBFBD> <20>ݺ<EFBFBD>
//2-1. childButton <20><> gameObject.name string <20><> '_' <20><><EFBFBD>ڷ<EFBFBD> Split
//2-2. Split<69><74> <20><><EFBFBD>ڿ<EFBFBD> <20><EFBFBD><E8BFAD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E8BFAD> <20><><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD> cbName <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//2-3. cbName<6D><65> childButton <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> TextMeshProUGUI<55><49> <20>ؽ<EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD>
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<72><6D> child Text <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TextMeshProUGUI[] textList = pb.transform.GetComponentsInChildren<TextMeshProUGUI>();
//2. child Text<78><74> gameObject.name <20><> '_'<27><> Split
foreach (var text in textList)
{
string[] nameSplit = text.gameObject.name.Split('_');
//3. Split<69><74> <20><><EFBFBD>ڿ<EFBFBD> <20><EFBFBD><E8BFAD><EFBFBD><EFBFBD> ù<><C3B9>° <20><EFBFBD><E8BFAD> <20><><EFBFBD><EFBFBD> "Title" <20><> <20><><EFBFBD><EFBFBD>
if (nameSplit[0] == "Title")
{
//4. <20>ش<EFBFBD> childText<78><74> Split<69><74> <20><><EFBFBD>ڿ<EFBFBD> <20><EFBFBD><E8BFAD> <20>ι<EFBFBD>° <20><EFBFBD><E8BFAD> <20>Է<EFBFBD>
text.text = nameSplit[1];
}
}
}
void ButtonNaming()
{
//1. pb transform<72><6D> child Button <20><><EFBFBD><EFBFBD> cbList <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Button[] cbList = pb.transform.GetComponentsInChildren<Button>();
//2. cbList<73><74> <20><>ȸ<EFBFBD>ϸ<EFBFBD> <20>ݺ<EFBFBD>
foreach (var cb in cbList)
{
//2-1. childButton <20><> gameObject.name string <20><> '_' <20><><EFBFBD>ڷ<EFBFBD> Split
string[] nameSplit = cb.gameObject.name.Split('_');
//2-2. Split<69><74> <20><><EFBFBD>ڿ<EFBFBD> <20><EFBFBD><E8BFAD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E8BFAD> <20><><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD> cbName <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
string cbName = nameSplit[nameSplit.Length - 1];
//2-3. cbName<6D><65> childButton <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> TextMeshProUGUI<55><49> <20>ؽ<EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD>
TextMeshProUGUI text = cb.GetComponentInChildren<TextMeshProUGUI>();
if (text != null)
{
text.text = cbName;
}
}
}
}