82 lines
3.0 KiB
C#
82 lines
3.0 KiB
C#
using System.Collections.Generic;
|
|
using Runtime.Helper;
|
|
using TMPro;
|
|
using UnityEditor;
|
|
using UnityEngine;
|
|
|
|
namespace HK.Editor
|
|
{
|
|
public class UIToolEditor : UnityEditor.Editor
|
|
{
|
|
#region Prefab
|
|
|
|
[MenuItem("GameObject/ZTool/TextTool/自动添加LanguageChange")]
|
|
public static void AutoLoadLanguageItem()
|
|
{
|
|
foreach (var go in Selection.gameObjects)
|
|
{
|
|
var tmpTexts = go.transform.FindChildDeeps<TMP_Text>();
|
|
if (tmpTexts != null && tmpTexts.Count > 0)
|
|
{
|
|
foreach (var tmpText in tmpTexts)
|
|
{
|
|
var languageItem = tmpText.transform.GetComponentInChildren<LanguageItem>();
|
|
if (languageItem == null)
|
|
{
|
|
var asset = AssetDatabase.LoadAssetAtPath<GameObject>(
|
|
"Assets/Res/Prefab/LanguageChange.prefab");
|
|
var gameObject = (GameObject)PrefabUtility.InstantiatePrefab(asset);
|
|
gameObject.name = asset.name;
|
|
gameObject.transform.SetParent(tmpText.transform);
|
|
}
|
|
else
|
|
{
|
|
Debug.Log($"{tmpText.name} 已存在 LanguageItem 组件");
|
|
}
|
|
}
|
|
|
|
EditorUtility.SetDirty(go);
|
|
Debug.Log("自动绑定数据 完成");
|
|
}
|
|
else
|
|
{
|
|
Debug.Log("未找到Text组件");
|
|
}
|
|
}
|
|
}
|
|
|
|
[MenuItem("GameObject/ZTool/TextTool/自动断开LanguageChange连接")]
|
|
public static void AutoUnpackPrefab()
|
|
{
|
|
foreach (var go in Selection.gameObjects)
|
|
{
|
|
var tmpTexts = go.transform.FindChildDeeps<TMP_Text>();
|
|
if (tmpTexts != null && tmpTexts.Count > 0)
|
|
{
|
|
foreach (var tmpText in tmpTexts)
|
|
{
|
|
var languageItem = tmpText.transform.GetComponentInChildren<LanguageItem>();
|
|
if (languageItem != null)
|
|
{
|
|
if (languageItem != null && PrefabUtility.IsPartOfPrefabInstance(languageItem))
|
|
{
|
|
PrefabUtility.UnpackPrefabInstance(languageItem.gameObject, PrefabUnpackMode.Completely,
|
|
InteractionMode.UserAction);
|
|
Debug.Log($"已断开 {tmpText.name} 与预制体的连接");
|
|
}
|
|
}
|
|
}
|
|
|
|
EditorUtility.SetDirty(go);
|
|
Debug.Log("自动绑定数据 完成");
|
|
}
|
|
else
|
|
{
|
|
Debug.Log("未找到Text组件");
|
|
}
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
} |