| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- using UnityEngine;
- using UnityEditor;
- using System.Collections.Generic;
- namespace AdaptUI
- {
- public class AddressableImageLoaderWindow : EditorWindow
- {
- private List<AddressableImageLoader> loaders = new List<AddressableImageLoader>();
- [MenuItem("Window/My Addressable UI Manager")]
- public static void ShowWindow()
- {
- GetWindow<AddressableImageLoaderWindow>("Addressable UI Manager");
- }
- private void OnGUI()
- {
- EditorGUILayout.LabelField("Addressable UI 管理器", EditorStyles.boldLabel);
- if (GUILayout.Button("🔄 查找所有 AddressableImageLoader"))
- {
- FindAllLoaders();
- }
- if (loaders.Count > 0)
- {
- EditorGUILayout.Space();
- EditorGUILayout.LabelField($"发现 {loaders.Count} 个 AddressableImageLoader", EditorStyles.boldLabel);
- if (GUILayout.Button("🔄 刷新全部 UI 资源"))
- {
- RefreshAllLoaders();
- }
- EditorGUILayout.Space();
- foreach (var loader in loaders)
- {
- EditorGUILayout.BeginHorizontal();
- EditorGUILayout.ObjectField(loader.gameObject, typeof(GameObject), true);
- if (GUILayout.Button("刷新", GUILayout.Width(60)))
- {
- RefreshLoader(loader);
- }
- EditorGUILayout.EndHorizontal();
- }
- }
- else
- {
- EditorGUILayout.HelpBox("没有找到 AddressableImageLoader 组件,请点击查找按钮。", MessageType.Info);
- }
- }
- private void FindAllLoaders()
- {
- loaders.Clear();
- AddressableImageLoader[] allLoaders = FindObjectsOfType<AddressableImageLoader>();
- loaders.AddRange(allLoaders);
- //Debug.Log($"发现 {loaders.Count} 个 AddressableImageLoader 组件");
- }
- private void RefreshAllLoaders()
- {
- foreach (var loader in loaders)
- {
- RefreshLoader(loader);
- }
- }
- private void RefreshLoader(AddressableImageLoader loader)
- {
- if (loader != null)
- {
- AddressableImageLoaderEditor.LoadImageInEditor(loader);
- //Debug.Log($"已刷新 {loader.gameObject.name}");
- }
- }
- }
- }
|