/* * * 改编后的unity3D Resources 类,使用起来更加方便,省略了在代码中拆箱装箱的操作 * * * * */ using UnityEngine; public class ResourcesEx { private string path; public ResourcesEx(string path) { if (path.Length == 0) { this.path = string.Empty; } else { this.path = path; } } public T[] LoadAll<T>() where T : Object { Object[] obj = Resources.LoadAll(this.path, typeof(T)); T[] TLoaded = new T[obj.Length]; obj.CopyTo(TLoaded, 0); return TLoaded; } public T[] LoadAll<T>(string dirname) where T : Object { Object[] obj = Resources.LoadAll(this.path + "/" + dirname, typeof(T)); T[] TLoaded = new T[obj.Length]; obj.CopyTo(TLoaded, 0); return TLoaded; } public Texture GetTexture(string textureName) { Object obj = Resources.Load(this.path + "/" + textureName, typeof(Texture)); if (obj) { return obj as Texture; } else { Debug.LogError("["+ this.path + textureName + "] Non Exist"); return new Texture(); } } public Texture2D GetTexture2D(string textureName) { Object obj = Resources.Load(this.path + "/" + textureName, typeof(Texture2D)); if (obj) { return obj as Texture2D; } else { Debug.LogError("["+ this.path + textureName + "] Non Exist"); return new Texture2D(1, 1); } } public T GetObject<T>(string objectName) where T : Object { Object obj = Resources.Load(this.path + "/" + objectName, typeof(T)); if (obj) { return obj as T; } else { Debug.LogError("["+ this.path + objectName + "] Non Exist"); return new Object() as T; } } }