EditorSpriteAsste.cs 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  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);
  24. if (Script.SpriteInfoList != null)
  25. {
  26. for (int i = 0; i < Script.SpriteInfoList.Count; i++)
  27. {
  28. SpriteInfo spriteInfo = Script.SpriteInfoList[i];
  29. GUILayout.BeginHorizontal();
  30. EditorGUILayout.ObjectField("", spriteInfo.Sprite, typeof(Sprite), false);
  31. GUILayout.BeginVertical();
  32. EditorGUILayout.LabelField("ID : " + spriteInfo.ID);
  33. EditorGUILayout.LabelField("Name : " + spriteInfo.Name);
  34. EditorGUILayout.LabelField("Rect : " + spriteInfo.Rect);
  35. EditorGUILayout.LabelField("Pivot : " + spriteInfo.Pivot);
  36. EditorGUILayout.LabelField("");
  37. GUILayout.EndVertical();
  38. GUILayout.EndHorizontal();
  39. }
  40. }
  41. GUILayout.EndScrollView();
  42. }
  43. private void GetSpriteInfo()
  44. {
  45. Script.SpriteInfoList = new List<SpriteInfo>();
  46. string path = AssetDatabase.GetAssetPath(Script.Texture);
  47. Object[] objects = AssetDatabase.LoadAllAssetsAtPath(path);
  48. for (int i = 0; i < objects.Length; i++)
  49. {
  50. if (objects[i] is Sprite)
  51. {
  52. Sprite sprite = (Sprite) objects[i];
  53. SpriteInfo spriteInfo = new SpriteInfo();
  54. spriteInfo.ID = i;
  55. spriteInfo.Rect = sprite.rect;
  56. spriteInfo.Pivot = sprite.pivot;
  57. spriteInfo.Sprite = sprite;
  58. spriteInfo.Name = sprite.name;
  59. Script.SpriteInfoList.Add(spriteInfo);
  60. }
  61. }
  62. }
  63. }