1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- using UnityEditor;
- using UnityEngine;
- using System.Collections;
- using System.Collections.Generic;
- [CustomEditor(typeof(SpriteAsset))]
- public class EditorSpriteAsste : Editor
- {
- #region 变量
- private Vector2 ScrollPos;
- #endregion
- private void OnEnable()
- {
-
- }
- public override void OnInspectorGUI()
- {
- base.OnInspectorGUI();
- if (GUILayout.Button("GetSpriteInfo"))
- {
- GetSpriteInfo();
- }
- ScrollPos = GUILayout.BeginScrollView(ScrollPos, false, false);
- if (SpriteAsset.SpriteInfoList != null)
- {
- for (int i = 0; i < SpriteAsset.SpriteInfoList.Count; i++)
- {
- SpriteInfo spriteInfo = SpriteAsset.SpriteInfoList[i];
- EditorGUILayout.ObjectField("", spriteInfo.Sprite, typeof(Sprite), false);
- GUILayout.BeginVertical();
- EditorGUILayout.LabelField("Name : " + spriteInfo.Name);
- EditorGUILayout.LabelField("LowerLeft : " + spriteInfo.UvList[0]);
- EditorGUILayout.LabelField("UpperLeft : " + spriteInfo.UvList[1]);
- EditorGUILayout.LabelField("UpperRight : " + spriteInfo.UvList[2]);
- EditorGUILayout.LabelField("LowerRight : " + spriteInfo.UvList[3]);
- EditorGUILayout.LabelField("");
- GUILayout.EndVertical();
- }
- }
- GUILayout.EndScrollView();
- }
- private void GetSpriteInfo()
- {
- SpriteAsset.SpriteInfoList = new List<SpriteInfo>();
- string path = AssetDatabase.GetAssetPath(SpriteAsset.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.Sprite = sprite;
- spriteInfo.Name = sprite.name;
- float width = SpriteAsset.Texture.width;
- float height = SpriteAsset.Texture.height;
- Vector2 llUv = new Vector2(sprite.rect.xMin/width, sprite.rect.yMin/height);
- Vector2 ulUv = new Vector2(sprite.rect.xMin/width, sprite.rect.yMax/height);
- Vector2 urUv = new Vector2(sprite.rect.xMax/width, sprite.rect.yMax/height);
- Vector2 lrUv = new Vector2(sprite.rect.xMax/width, sprite.rect.yMin/height);
-
- spriteInfo.UvList = new List<Vector2>();
- spriteInfo.UvList.Add(llUv);
- spriteInfo.UvList.Add(ulUv);
- spriteInfo.UvList.Add(urUv);
- spriteInfo.UvList.Add(lrUv);
- SpriteAsset.SpriteInfoList.Add(spriteInfo);
- }
- }
- }
- }
|