UNITY 5.2 Resources类
2015-10-20 21:43
507 查看
描述:
该类能查找和使用对象, Resources.FindObjectsOfTypeAll 能定位资源和场景对象
所有包含在 Assets文件夹下中的 Resources 文件夹中的资源都能被 Resources.Load 访问,若存在多个 Resources 则会自动检查。
在UNITY开发中,一般不用路径名来操作资源,而是通过声明一个成员变量在 inspector 赋值某个资源的引用。如果运用这种技术,UNITY能够自动的计算哪些资源是被用的当完成创建时,如果直接将资源放在 Resources 目录下则会将所有资源打包进游戏。
另外一个不好的地方就是,当脚本特别指定严格的代码来获取资源的路径时,代码的重用性很低。在 inspector 中暴露引用的方式对于使用该脚本的用户来说是很直接有效的。
然后还是有一些情况不应该使用 inspector 暴露引用的方式给对象赋值,比如 动态的创建对象 和 赋值纹理时。
一些已经加载的资源(尤其是纹理)会一直占用内存,即使场景中没有对象。当这些资源不再使用,为了回收这些内存,可以调用Resources.UnloadUnusedAssets 回收这些资源。
Static函数:
public static T[] FindObjectsOfTypeAll<T>() where T : Object;
public static Object[] FindObjectsOfTypeAll(Type type);
说明:这个函数会返回所有已经加载的对象数组,还返回内部的对象,所以小心使用该数组。
与Object.FindObjectsOfType 不同,不可用的对象也会列举在内
public static Object Load(string path);
public static T Load<T>(string path) where T : Object;
public static Object Load(string path, Type systemTypeInstance);
说明:加载 Resources 文件夹总路径为 path 的资源,systemTypeInstance 指定对象类型,否则为努力了,不使用扩展名
public static Object[] LoadAll(string path);
public static T[] LoadAll<T>(string path) where T : Object;
public static Object[] LoadAll(string path, Type systemTypeInstance);
说明:加载 Resources 文件夹总路径为 path 的资源,若 path 为文件夹则加载该文件夹下所有的资源,若为文件则只返回该资源文件指定的对象,systemTypeInstance 指定对象类型。
public static ResourceRequest LoadAsync(string path);
public static ResourceRequest LoadAsync<T>(string path) where T : Object;
public static ResourceRequest LoadAsync(string path, Type type);
说明:异步加载 Resources 文件夹中 path 下的资源,当资源被加载完成时能被重新获取则返回 ResourceRequest。 只有指定类型的资源才会被返回
public static void UnloadAsset(Object assetToUnload);
说明:卸载内存中的资源,仅用于保存在硬盘上的资源,如果还有对象引用该资源,则会被重新加载
public static AsyncOperation UnloadUnusedAssets();
说明:卸载未使用的资源
该类能查找和使用对象, Resources.FindObjectsOfTypeAll 能定位资源和场景对象
所有包含在 Assets文件夹下中的 Resources 文件夹中的资源都能被 Resources.Load 访问,若存在多个 Resources 则会自动检查。
在UNITY开发中,一般不用路径名来操作资源,而是通过声明一个成员变量在 inspector 赋值某个资源的引用。如果运用这种技术,UNITY能够自动的计算哪些资源是被用的当完成创建时,如果直接将资源放在 Resources 目录下则会将所有资源打包进游戏。
另外一个不好的地方就是,当脚本特别指定严格的代码来获取资源的路径时,代码的重用性很低。在 inspector 中暴露引用的方式对于使用该脚本的用户来说是很直接有效的。
然后还是有一些情况不应该使用 inspector 暴露引用的方式给对象赋值,比如 动态的创建对象 和 赋值纹理时。
一些已经加载的资源(尤其是纹理)会一直占用内存,即使场景中没有对象。当这些资源不再使用,为了回收这些内存,可以调用Resources.UnloadUnusedAssets 回收这些资源。
Static函数:
public static T[] FindObjectsOfTypeAll<T>() where T : Object;
public static Object[] FindObjectsOfTypeAll(Type type);
说明:这个函数会返回所有已经加载的对象数组,还返回内部的对象,所以小心使用该数组。
与Object.FindObjectsOfType 不同,不可用的对象也会列举在内
public static Object Load(string path);
public static T Load<T>(string path) where T : Object;
public static Object Load(string path, Type systemTypeInstance);
说明:加载 Resources 文件夹总路径为 path 的资源,systemTypeInstance 指定对象类型,否则为努力了,不使用扩展名
public static Object[] LoadAll(string path);
public static T[] LoadAll<T>(string path) where T : Object;
public static Object[] LoadAll(string path, Type systemTypeInstance);
说明:加载 Resources 文件夹总路径为 path 的资源,若 path 为文件夹则加载该文件夹下所有的资源,若为文件则只返回该资源文件指定的对象,systemTypeInstance 指定对象类型。
public static ResourceRequest LoadAsync(string path);
public static ResourceRequest LoadAsync<T>(string path) where T : Object;
public static ResourceRequest LoadAsync(string path, Type type);
说明:异步加载 Resources 文件夹中 path 下的资源,当资源被加载完成时能被重新获取则返回 ResourceRequest。 只有指定类型的资源才会被返回
public static void UnloadAsset(Object assetToUnload);
说明:卸载内存中的资源,仅用于保存在硬盘上的资源,如果还有对象引用该资源,则会被重新加载
public static AsyncOperation UnloadUnusedAssets();
说明:卸载未使用的资源
相关文章推荐
- unity 3D 笔记
- Spine输出资源一键入Unity3D工具代码
- Unity之Avatar原理
- Unity3D研究院之主角面朝方向一定区域内对象角度计算(四十五)
- Unity3D研究院之手游开发中所有特殊的文件夹
- unity3D游戏开发十四之NGUI一
- Unity3D之Foam浪花效果
- Unity.exe/Unity命令行参数
- 小白和坑爹的ATI显卡
- Unity 日志文件的存放
- unity3d图片导入尺寸改变的原因
- unity3D游戏开发三之unity编辑器二
- 图文详解Unity3D中Material的Tiling和Offset是怎么回事
- Unity3D中LitJson使用
- unity3D游戏开发二之unity编辑器一
- unity安卓打包的问题
- 【术】Unity中c#协程原理及实现
- Unity3d 中按钮操作
- Unity中HideInInspector和SerializeField
- Unity3D架构之第一弹 《善用接口》