123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- #if UNITY_EDITOR
- using UnityEditor;
- #endif
- using UnityEngine;
- using System;
- using System.Linq;
- using System.Collections;
- using System.Collections.Generic;
- using Object = UnityEngine.Object;
- public class SpriteInfo
- {
- #region 变量
- public float Width;
- public float Height;
- public string Name;
- public Sprite Sprite;
- public List<Vector2> UvList;
- public SpriteInfo()
- {
-
- }
- public SpriteInfo(Sprite sprite)
- {
- Width = sprite.rect.width;
- Height = sprite.rect.height;
- Name = sprite.name;
- Sprite = sprite;
- UvList = sprite.uv.ToList();
- }
- #endregion
- }
- public class SpriteAsset : MonoBehaviour
- {
- #region 变量
- public static Dictionary<string, SpriteInfo> SpriteInfoDic
- {
- get
- {
- return _SpriteInfoDic;
- }
- set { _SpriteInfoDic = value; }
- }
- public static Dictionary<string, SpriteInfo> _SpriteInfoDic = new Dictionary<string, SpriteInfo>();
- #endregion
- public static void AddAllBundleSpriteInfo()
- {
- Sprite[] sprites = new Sprite[0];
- sprites = Bundle.Atlas.LoadAssetWithSubAssets<Sprite>("Atlas");
- AddBundleSpriteInfo(sprites);
- sprites = Bundle.Scene.LoadAssetWithSubAssets<Sprite>("Expression");
- AddBundleSpriteInfo(sprites);
- }
- public static void AddBundleSpriteInfo(Sprite[] sprites)
- {
- for (int i = 0; i < sprites.Length; i++)
- {
- ResourceManager.ObjectDictionary.UniqueAdd(sprites[i].name, sprites[i]);
- SpriteInfo spriteInfo = new SpriteInfo();
- spriteInfo.Name = sprites[i].name;
- spriteInfo.Width = sprites[i].rect.width;
- spriteInfo.Height = sprites[i].rect.height;
- float width = sprites[i].texture.width;
- float height = sprites[i].texture.height;
- Vector2 llUv = new Vector2(sprites[i].rect.xMin / width, sprites[i].rect.yMin / height);
- Vector2 ulUv = new Vector2(sprites[i].rect.xMin / width, sprites[i].rect.yMax / height);
- Vector2 urUv = new Vector2(sprites[i].rect.xMax / width, sprites[i].rect.yMax / height);
- Vector2 lrUv = new Vector2(sprites[i].rect.xMax / width, sprites[i].rect.yMin / height);
- spriteInfo.UvList = new List<Vector2>();
- spriteInfo.UvList.Add(ulUv);
- spriteInfo.UvList.Add(urUv);
- spriteInfo.UvList.Add(lrUv);
- spriteInfo.UvList.Add(llUv);
- SpriteInfoDic.Add(spriteInfo.Name, spriteInfo);
- }
- }
- }
|