123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- using System.Collections.Generic;
- using System.IO;
- using UnityEditor;
- using UnityEditor.UI;
- using UnityEngine;
- using UnityEngine.U2D;
- using UnityEngine.UI.PackgTool;
- namespace UnityEditor.UI
- {
- public class UGUISelectSpriteAtlasWindow : EditorWindow
- {
- private static System.Action<SpriteAtlas, Sprite> callBack;
- private static string jsonPackPath;
- private static string spriteAtlasPath = "/Res/UIAtlas";
- float mClickTime = 0f;
- private static List<SpriteAtlas> currSelectSpriteAtlas = new List<SpriteAtlas>();
- private static Sprite currSelectSprite;
- private static PackInfo packInfo;
- public static void OpenWidow(PackInfo packInfo, Sprite sprite, List<SpriteAtlas> currSelectSpriteAtlas, System.Action<SpriteAtlas, Sprite> callBack)
- {
- UGUISelectSpriteAtlasWindow.packInfo = packInfo;
- UGUISelectSpriteAtlasWindow.currSelectSpriteAtlas = currSelectSpriteAtlas;
- currSelectSprite = sprite;
- jsonPackPath = packInfo.packgJsonPath;
- UGUISelectSpriteAtlasWindow.callBack = callBack;
- UGUISelectSpriteAtlasWindow window = EditorWindow.GetWindow<UGUISelectSpriteAtlasWindow>();
- window.name = "选择一个一个当前图片";
- window.Show();
- }
- Vector2 pos = Vector2.zero;
- private void GUISpriteAtlas()
- {
- if (currSelectSprite != null)
- {
- GUI.DrawTexture(new Rect(EditorGUIUtility.currentViewWidth / 2 - 64, 0, 128, 128), currSelectSprite.texture);
- }
- GUILayout.Space(150);
- GUILayout.Label($"请选择{currSelectSprite.name}需要使用的图集");
- pos = GUILayout.BeginScrollView(pos);
- if (currSelectSpriteAtlas != null)
- {
- for (int i = 0; i < currSelectSpriteAtlas.Count; i++)
- {
- if (GUILayout.Button(currSelectSpriteAtlas[i].name))
- {
- GUILayout.EndScrollView();
- callBack?.Invoke(currSelectSpriteAtlas[i], currSelectSprite);
- Close();
- return;
- }
- }
- }
- GUILayout.EndScrollView();
- }
- void OnGUI()
- {
- GUISpriteAtlas();
- }
- }
- }
|