unity 加载图片文件
来源:互联网 发布:js判断ie版本是否大于7 编辑:程序博客网 时间:2024/05/14 11:33
- 图片文件自动设置为Sprite
- 添加文件时,自动添加到列表
- 删除文件时,自动从列表删除
使用方式
using System.Collections.Generic;using UnityEngine;public class Test : MonoBehaviour { public Dictionary<string, Sprite> spriteDic = new Dictionary<string, Sprite>(); private void Awake(){ var spriteList = Resources.Load<SpriteAsset>("Assets/SpriteAsset").SpriteList; int count = spriteList.Count; for(int i = 0; i < count; i++) { spriteDic.Add(spriteList[i].name, spriteList[i]); } Debug.Log(spriteDic["3"]); }}
该文件名字必须为SpriteAsset
using System.Collections.Generic;using UnityEngine; public class SpriteAsset : ScriptableObject{ public List<Sprite> SpriteList;}
using System.Collections.Generic;using UnityEditor;using UnityEngine;using System.IO; public class CreateSprite : AssetPostprocessor { private static bool isChanaged = false; private static new string assetPath = "Assets/Resources/Assets/SpriteAsset.asset"; /*private static string[] suffixs = new string[] { ".gif", ".jpg", ".png", ".bmp", ".jpeg", ".psd", ".tiff", ".tga", ".iff", ".pict" };*/ [MenuItem("Tool/Load")] static void create() { SpriteAsset data = ScriptableObject.CreateInstance<SpriteAsset>(); //data.SpriteList = GetAllSprite(); data.SpriteList = new List<Sprite>(Resources.LoadAll<Sprite>("")); int index = assetPath.LastIndexOf('/'); Directory.CreateDirectory(assetPath.Remove(index,assetPath.Length-index)); AssetDatabase.CreateAsset(data, assetPath); } private void OnPreprocessTexture() { TextureImporter impor = this.assetImporter as TextureImporter; impor.textureType = TextureImporterType.Sprite; impor.spriteImportMode = SpriteImportMode.Single; } public static void OnPostprocessAllAssets( string[] add,string[] deleted,string[] moved,string[]movedFrom) { var asset = AssetDatabase.LoadAssetAtPath<SpriteAsset>(assetPath); if(asset==null) { create(); return; } foreach (var path in add) { var sprite= AssetDatabase.LoadAssetAtPath<Sprite>(path); if (sprite != null) { isChanaged = true; asset.SpriteList.Add(sprite); } } foreach(var path in deleted) { var sprite = AssetDatabase.LoadAssetAtPath<Sprite>(path); if (asset.SpriteList.Remove(sprite)) { isChanaged = true; } } if (isChanaged) { isChanaged = false; UpAsset(asset.SpriteList); } } private static void UpAsset(List<Sprite> list) { var asset = ScriptableObject.CreateInstance<SpriteAsset>(); asset.SpriteList = list; AssetDatabase.CreateAsset(asset, assetPath); } /* private static List<Sprite> GetAllSprite() { List<Sprite> list = new List<Sprite>(); DirectoryInfo direction = new DirectoryInfo("Assets"); FileInfo[] files = direction.GetFiles("*", SearchOption.AllDirectories); int index = Application.dataPath.IndexOf("Assets"); foreach(FileInfo info in files) { foreach (var suffix in suffixs) { if (info.Name.EndsWith(suffix)) { var currentPath = info.FullName.Remove(0, index); var sprite = AssetDatabase.LoadAssetAtPath<Sprite>(currentPath); list.Add(sprite); } } } return list; }*/}
阅读全文
0 0
- unity 加载图片文件
- Unity 加载本地图片文件
- unity 文件、图片加载与保存
- unity 文件、图片加载与保存
- unity加载文件的方法-用加载图片举例
- Unity--动态加载网络图片和本地图片文件
- Unity--动态加载网络图片和本地图片文件
- Unity 加载网络图片
- Unity图片加载器
- Unity 加载网络图片
- Unity 异步加载图片
- unity异步从外部文件加载音频和图片
- unity 加载图片出现问号
- unity加载图片、音频、视频
- Unity加载图片到UI
- Unity CSV文件加载案例
- 加载一个图片文件
- Unity--Pdf文件转图片
- 继续逆向youdaodict
- VBA编码经验——日期类型的比较
- 学以致用——Excel连接Oracle生成iKB报告——Part3(功能优化)
- 他山定时 v1.0.7源码, 使用OHUI开发
- Activity相关笔记
- unity 加载图片文件
- [Amazon] Partion Array
- 个人第一篇博客 库文件 使用 教训
- UVA11645 Bits【位运算+大数】
- 17_7_13:合并两个有序链表。实现1+2+3+...+n,不使用常规方法
- SVN使用
- 数据倾斜解决方案之三:使用随机Key实现双重聚合
- 关于烙饼排序问题的算法与Java实现
- jsp中c标签的使用