using UnityEditor; using UnityEngine; using System.Collections; using System.Collections.Generic; [CustomEditor(typeof(SpriteAsset))] public class EditorSpriteAsste : Editor { #region 变量 private Vector2 ScrollPos; private SpriteAsset Script; #endregion private void OnEnable() { Script = (SpriteAsset) target; } public override void OnInspectorGUI() { base.OnInspectorGUI(); if (GUILayout.Button("GetSpriteInfo")) { GetSpriteInfo(); } ScrollPos = GUILayout.BeginScrollView(ScrollPos); if (Script.SpriteInfoList != null) { for (int i = 0; i < Script.SpriteInfoList.Count; i++) { SpriteInfo spriteInfo = Script.SpriteInfoList[i]; GUILayout.BeginHorizontal(); EditorGUILayout.ObjectField("", spriteInfo.Sprite, typeof(Sprite), false); GUILayout.BeginVertical(); EditorGUILayout.LabelField("ID : " + spriteInfo.ID); EditorGUILayout.LabelField("Name : " + spriteInfo.Name); EditorGUILayout.LabelField("Rect : " + spriteInfo.Rect); EditorGUILayout.LabelField("Pivot : " + spriteInfo.Pivot); EditorGUILayout.LabelField(""); GUILayout.EndVertical(); GUILayout.EndHorizontal(); } } GUILayout.EndScrollView(); } private void GetSpriteInfo() { Script.SpriteInfoList = new List(); string path = AssetDatabase.GetAssetPath(Script.Texture); Object[] objects = AssetDatabase.LoadAllAssetsAtPath(path); for (int i = 0; i < objects.Length; i++) { if (objects[i] is Sprite) { Sprite sprite = (Sprite) objects[i]; SpriteInfo spriteInfo = new SpriteInfo(); spriteInfo.ID = i; spriteInfo.Rect = sprite.rect; spriteInfo.Pivot = sprite.pivot; spriteInfo.Sprite = sprite; spriteInfo.Name = sprite.name; Script.SpriteInfoList.Add(spriteInfo); } } } }