EditorSpriteAsste.cs 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. using UnityEditor;
  2. using UnityEngine;
  3. using System.Collections;
  4. using System.Collections.Generic;
  5. [CustomEditor(typeof(SpriteAsset))]
  6. public class EditorSpriteAsste : Editor
  7. {
  8. #region 变量
  9. private Vector2 ScrollPos;
  10. private SpriteAsset Script;
  11. #endregion
  12. private void OnEnable()
  13. {
  14. Script = (SpriteAsset) target;
  15. }
  16. public override void OnInspectorGUI()
  17. {
  18. base.OnInspectorGUI();
  19. if (GUILayout.Button("GetSpriteInfo"))
  20. {
  21. GetSpriteInfo();
  22. }
  23. ScrollPos = GUILayout.BeginScrollView(ScrollPos, false, false);
  24. if (Script.SpriteInfoList != null)
  25. {
  26. for (int i = 0; i < Script.SpriteInfoList.Count; i++)
  27. {
  28. SpriteInfo spriteInfo = Script.SpriteInfoList[i];
  29. EditorGUILayout.ObjectField("", spriteInfo.Sprite, typeof(Sprite), false);
  30. GUILayout.BeginVertical();
  31. EditorGUILayout.LabelField("ID : " + spriteInfo.ID);
  32. EditorGUILayout.LabelField("Name : " + spriteInfo.Name);
  33. EditorGUILayout.LabelField("Rect : " + spriteInfo.Rect);
  34. EditorGUILayout.LabelField("Pivot : " + spriteInfo.Pivot);
  35. EditorGUILayout.LabelField("");
  36. GUILayout.EndVertical();
  37. }
  38. }
  39. GUILayout.EndScrollView();
  40. }
  41. private void GetSpriteInfo()
  42. {
  43. Script.SpriteInfoList = new List<SpriteInfo>();
  44. string path = AssetDatabase.GetAssetPath(Script.Texture);
  45. Object[] objects = AssetDatabase.LoadAllAssetsAtPath(path);
  46. for (int i = 0; i < objects.Length; i++)
  47. {
  48. if (objects[i] is Sprite)
  49. {
  50. Sprite sprite = (Sprite) objects[i];
  51. SpriteInfo spriteInfo = new SpriteInfo();
  52. spriteInfo.ID = i;
  53. spriteInfo.Rect = sprite.rect;
  54. spriteInfo.Pivot = sprite.pivot;
  55. spriteInfo.Sprite = sprite;
  56. spriteInfo.Name = sprite.name;
  57. Script.SpriteInfoList.Add(spriteInfo);
  58. }
  59. }
  60. }
  61. }