精华内容
下载资源
问答
  • Unity Resources的几个方法

    千次阅读 2017-09-17 19:52:22
    Resources 资源Resources类允许你从指定的路径查找或者访问资源所有资源必须在项目Assets文件内的任意Resources文件夹中,可以通过Resources.Load()访问,允许有多个Resources文件夹,每次加载对象是会自动检查,,

    Resources 资源

    Resources类允许你从指定的路径查找或者访问资源

    所有资源必须在项目Assets文件内的任意Resources文件夹中,可以通过Resources.Load()访问,允许有多个Resources文件夹,每次加载对象是会自动检查,,,

    在Unity 中通常不需要使用路径名来访问资源,相反你可以勇敢过声明一个变量来暴露一个资源的引用,然后在检视面板中指定它,使用这个技巧的时候Unity可以在常见的时候自动计算哪个资源被使用,这从根本上最大限度的减少了实际用于游戏的资源的尺寸,当你放资源在“Resources”文件夹中时,所有在“Resources”文件夹在红的资源都将被打包编译包含在游戏中,,

    另一个使用路径名的缺点是,缺乏可重用性,因为脚本对于使用的资源具有硬编码要求,另一方面使用暴露在检视面板中的资源引用,是自动文档化的,对于使用脚本的用户来说也是立竿见影的,,,

    然而,有些情况按照名称对比在检视面板中取回一个资源更方便,有钱是当在检视面板中指定引用是不方便的时候,例如你或许想从脚本创建一个游戏物体,为程序生成的网格赋值一个纹理,,

    有些已加载资源,最明显的是纹理,即使在场景没有实力,也最占内存,当资源不在需要时可以使用Resources.UnloadUnusedAssets回收内存,,,

    Resources.FindObjectsOfTypeAll() 查找该类型的所有对象,,此方法执行速度非常慢,不建议在Update中使用,,,

    Resources.Load() 加载 此方法有两个重载函数

    public static Object Load(string path);    
    public static Object Load(string path, Type systemTypeInstance);   
    //path-->路径名
    //systemTypeInstance -->要返回对象类型过滤器

    如果发现,返回所在path处的资源,否则返回null。如果有type参数,只有type类型的物体将被返回。 Path相对于Resources文件夹,忽略扩展名。Resouces文件夹可以在Assets文件夹中的任何位置。
    注意:路径名使用正斜杠“/”,如果使用反斜杠“\”会不正常运行。

    Resources.LoadAll 加载全部资源

    public static Object[] LoadAll(string path); 
    public static Object[] LoadAll(string path, Type systemTypeInstance);

    Resources.LoadAsync() 异步加载

    public static ResourceRequest LoadAsync(string path);
    public static ResourceRequest LoadAsync(string path, Type type);

    Resources.UnloadAsset() 卸载资源
    public static void UnloadAsset(Object assetToUnload);
    从内存卸载指定资源,,这个函数仅仅用于存在硬盘上的资源,如果场景内有任何对象引用该资源,该资源被使用时,Unity会从硬盘重新加载该资源,,,

    Resources.UnloadUnusedAssets 卸载未使用的资源
    public static AsyncOperation UnloadUnusedAssets();
    返回AsyncOperation对象,你可以yield等待知道操作完成,,如果对象没有进入到游戏场景,资源被认为没有使用,包括脚本组件,静态变量也被检查,

    展开全文
  • Unity资源管理(二)-Resources文件夹

    万次阅读 多人点赞 2018-06-01 19:45:55
    Unity资源管理(二)-Resources文件夹 参考文献:https://unity3d.com/cn/learn/tutorials/topics/best-practices/resources-folder 本篇文章讨论了Unity中的 Resources 系统。通过Resources系统,开发者可以...

    Unity资源管理(二)-Resources文件夹

    英文原文:https://unity3d.com/cn/learn/tutorials/topics/best-practices/resources-folder

    本篇文章讨论了Unity中的 Resources 系统。通过Resources系统,开发者可以将Asset资源放在一个或多个名为 Resources 的文件夹中,并且在运行时利用Resources API来加载或卸载这些Asset中的Object。

    2.1 Resources系统的最佳实践

    不要使用它!

    强烈不建议使用Resources系统,原因如下:

    • 使用Resources文件夹将会使细粒度的内存管理变得更难
    • 对Resources文件夹的不恰当使用会导致应用程序构架和启动时间变长
      • 随着Resources文件夹数量的增加,在这些文件夹中管理Asset将会变得越来越难
    • 使用Resources系统会降低项目向不同平台提供定制内容的能立,并且导致项目无法进行增量内容更新
      • AssetBundle变体是Unity用来在设备层面调整内容的首选工具。[?1]

    [?1]:原文:AssetBundle Variants are Unity’s primary tool for adjusting content on a per-device basis

    2.2 合理地使用Resources系统

    在下面两种特殊情况中,Resources系统会很有用,而且不会影响开发体验:

    1. Resources系统简单易用的特点使其非常适合用于快速开发原型。不过,当项目进入正式开发阶段时,应该停止使用Resources文件夹。
    2. Resources文件夹可以用于处理一些简单的内容:
      • 在项目的整个生命周期中都被使用的内容
      • 非内存密集型内容
      • 不太可能添加补丁或者不受平台和设备影响的内容
      • 用于最小化引导的内容 [?2]

    [?2]:原文:Used for minimal bootstrapping

    第二种情况包括用于持有预制体的MonoBehaviour单例、包含第三方配置数据的ScriptableObject容器等。

    2.3 Resources的序列化

    当项目被构建时,所有名为Resources的文件夹中的所有Asset和Object都会合并到同一个序列化文件中。这个序列化文件中还含有元数据(Metadata)和索引(Indexing)信息,类似于AssetBundle。正如AssetBundle文档中所描述的那样,这个索引中包含了一个用于将给定Object名称转换为恰当的File GUID和Local ID的序列化查找树,同时它也用于定位在序列化文件中偏移了指定字节数的Object。

    在大多数平台上,用于查找的数据结构是平衡查找树,其时间复杂度为O(nlog(n))。因此,索引加载时间随Resources文件夹内Object数量而增长的速度高于线性增长。

    加载Resources文件这一操作无法跳过,它会在应用程序启动显示不可交互的启动画面(Splash Screen)时执行。在一台低端设备上,初始化一个包含10000个资源文件的Resources系统要花费几秒的时间,然而在Resources文件夹中的这些Object很多都不会在应用程序的第一个Scene中使用到,完全没有必要加载。

    展开全文
  • // TextAsset text = Resources.Load("helloworld.lua"); // luaEnv.DoString(text.text); //第二种 luaEnv.DoString("require 'helloworld'"); } private void OnDestroy() { //释放 luaEnv.Dispose(); ...
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using XLua;
    public class MyHelloWord02 : MonoBehaviour
    {
        private LuaEnv luaEnv;
        // Use this for initialization
        void Start()
        {
            //加载lua文件
            luaEnv = new LuaEnv();
            //第一种 
            //  TextAsset text = Resources.Load<TextAsset>("helloworld.lua");
            // luaEnv.DoString(text.text);
            //第二种
            luaEnv.DoString("require 'helloworld'");
    
        }
        private void OnDestroy()
        {
            //释放
            luaEnv.Dispose();
        }
        // Update is called once per frame
        void Update()
        {
    
        }
    }
    

     

    展开全文
  • 本篇文章讨论了Unity中的Resources系统。通过Resources系统,开发者可以将Asset资源放在一个或多个名为Resources的文件夹中,并且在运行时利用ResourcesAPI来加载或卸载这些Asset中的Object。一、预加载文件位置我们...

    本篇文章讨论了Unity中的 Resources 系统。通过Resources系统,开发者可以将Asset资源放在一个或多个名为 Resources 的文件夹中,并且在运行时利用Resources API来加载或卸载这些Asset中的Object。

    a739ef1ba60c42f0cacc586144e75f71.png

    一、预加载文件位置

    我们要把我们要用resource加载的文件放在Resources文件夹中,注意⚠️文件夹名字不能有差别

    ,但可以有多个Resources文件夹。

    a739ef1ba60c42f0cacc586144e75f71.png

    二、使用Resources系统的弊端

    1、使用Resources文件夹将会使细粒度的内存管理变得更难

    2、对Resources文件夹的不恰当使用会导致应用程序构架和启动时间变长

    3、随着Resources文件夹数量的增加,在这些文件夹中管理Asset将会变得越来越难

    4、使用Resources系统会降低项目向不同平台提供定制内容的能力,并且导致项目无法进行增量内容更新

    解决方案:使用AssetBundle(AssetBundle变体是Unity用来在设备层面调整内容的首选工具)

    a739ef1ba60c42f0cacc586144e75f71.png

    三、合理使用Resources系统

    1、Resources系统简单易用的特点使其非常适合用于快速开发原型。不过,当项目进入正式开发阶段时,应该停止使用Resources文件夹

    2、在项目的整个生命周期中都被使用的内容

    3、非内存密集型内容

    4、不太可能添加补丁或者不受平台和设备影响的内容

    5、用于最小化引导的内容

    6、用于持有预制体的MonoBehaviour单例、包含第三方配置数据的ScriptableObject容器等

    a739ef1ba60c42f0cacc586144e75f71.png

    四、使用Resource.Load动态加载

    格式:

    1、文件类型 文件名 = Instantiate(Resources.Load(文件路径(string类型)) as 文件类型);//把文件动态加载到内存中并实例化

    2、加载到UI上 逻辑差不多 只要设置父级

    文件类型 文件名 = Instantiate(Resources.Load(文件路径(string类型)) as 文件类型);//把文件动态加载到内存中并实例化

    文件名.gameobject.transform.SetParent(父级空物体.transform);63d5d86b21fc6ca272a037de1fe9cbb5.png

    这就是up对动态加载的分享,其实还可以用AssetBundle且能压缩安装包体积

    展开全文
  • Unity内部加载Resources

    2019-08-01 17:32:49
    Unity Resources文档中有这样几句话: 1.The Resources class allows you to find and access Objects including assets. 2.All assets that are in a folder named "Resources" anywhere in the Assets folder ...
  • 把editor放入assets目录,选择一张图片,点击菜单plugins下的checkpng,查看打印的log。代码写的查看uitexture是否使用了png,如果你的是其他控件例如uisprite请自行修改。
  • 本文适用于 Android 和 Windows 持久化路径 : File类读写 - > 持久化目录路径 + Json 直接用 ResourcesResources 文件夹下的的路径 PS:注意不不不不要加扩展名(.json)
  • Unity3D资源加载Resources

    千次阅读 2019-06-29 14:24:44
    Unity3D资源加载Resources 目录 1、博客介绍 2、内容 3、推送 4、结语 1、博客介绍 本篇博客对资源加载类Resources做一个介绍 2、内容 FindObjectsOfTypeAll 返回一个该类型对象的列表 Load 从...
  • Unity文档——Resources文件夹

    千次阅读 2018-07-26 11:53:49
    这是关于Unity 5中资产,资源和资源管理的系列文章的第3章。 本章讨论资源系统。这个系统允许开发人员在一个或多个名为Resources的文件夹中存储Assets,并使用Resources API 在运行时从这些Assets加载或卸载对象...
  • 如题,Unity中 要发布的Exe,一个的模型资源放在Resources 文件夹中,一个放在Resources 文件夹之外,打包编译出来的Exe文件夹中正好差了模型资源的大小。所以,发布的exe中要用到的资源才需要 放到Resources文件...
  • 前言: 在游戏开发学习初期,游戏体量较小,如果游戏场景需要Asset中的...为了避免这样的情况,Unity游戏引擎为我们提供了很多种加载Asset中资源的方式,而我们最常用的主要是Resources和AssetBundle两种方式 资源加
  • Resources.Load:1、使用形式public static ObjectLoad(stringpath);public static ObjectLoad(stringpath, TypesystemTypeInstance);2、参数解释path:Pathname of the target folder. When using the empty string...
  • 在Assets文件夹下创建Resources文件夹,将Material放在Resources文件夹下 读取 Material mat = Resources.Load<Material>("materialName"); GetComponent<MeshRenderer>().material = mat; ...
  • 使用: 在Assets文件夹下创建Editor文件将GenerateResConfig类导入。 在Unity编辑器中最上工具栏找到Tools/Resourcess/Generate...///生成 Resources资源配置文件的类【配置文件:初始化文件】 ///</summary> pub
  • UnityResources.Load加载资源及其封装

    千次阅读 2019-11-19 19:34:24
    Resources文件夹是Unity中标志性的目录(可以在1级目录,也可以在其他子目录),Resources目录下的文件不论使用与否,都会被强制打包到游戏包中,所以应尽可能去除不需要运行时加载的资源或者已经废弃掉的资源,否则...
  • 初步整理并且学习unity3d资源加载方法,预计用时两天完成入门学习Unity3d常用两种加载资源方案:Resources.Load和AssetBundleResources.Load就是从一个缺省打进程序包里的AssetBundle里加载资源而一般AssetBundle...
  • Unity最佳实践-Resources文件

    千次阅读 2018-06-11 23:21:00
    原文地址:https://unity3d.com/cn/learn/tutorials/topics/best-practices/resources-folder?playlist=30089 本章讨论了Resources系统,这个系统可以让开发者使用一个或者多个名为Resources的文件夹保存资产,...
  • unity读取resources文件夹下的json文件

    千次阅读 2019-04-28 13:14:40
    unity中读取json文件,在一些特殊文件夹下需要区分平台,感觉有点麻烦,想着能不能在resources文件夹下读取json文件,这样就不需要单独区分平台了。具体方法如下: public string JsonRead(string name) { ...
  • Unity:资源加载 Resources.Load

    万次阅读 多人点赞 2018-04-24 09:54:00
    Asteroid01 = Resources.Load(MyConst.RESOURCES_ASTEROID01_PATH) as GameObject; }​   --------------------------------------------------------------------------------------------------------...
  • 简单总结Unity使用Resources类资源管理

    万次阅读 2016-07-19 19:49:49
    加载资源Resources.Load(),卸载资源分三种情况:非GameObject资源,GameObject资源及其克隆体
  • 在游戏中我们很多时候都需要查找预制体并且生成,必不可少用到Resources文件夹进行。记录一下在学习中遇到的优化方式Ps:这里是跟着祁天暄老师讲技能系统时候所学习到有需要的可以。。。。。。 在游戏中生成技能的...
  • 这是unity的一个缺陷,本来一个gameobject加载之后,只需要addToScene就可以了,但它却选择做一次copy,然后在这个操作内附带addToScene。 它这样做的理由无非是,运行修改物体后,原来资源的那一份不会变化,还...
  • 但是有时我们也会想要在脚本中加载资源,或者对资源进行统一管理,这时候我们就可以使用Unity提供的资源加载函数——Resources.Load。 加载资源(返回一个泛型对象):var 变量= Resources.Load<T>(...
  • Mesh mesh = (Mesh)Resources.Load("Test/testmesh") ; Debug.Log(Resources.Load<Mesh>("Test/testmesh")); 错误写法 Mesh mesh = (Mesh)Resources.Load("Test/testmesh.mesh") ; Debug.Log(Resources...
  • ##Resources类 使用Resources加载资源,资源一定要放到Resources文件夹下,支持名字和路径加载。 1.可以有多个Resources文件夹同时存在。 2.Resources下的资源在打包后是加密压缩状态,运行时不可修改。 3.加载方法 ...
  • Unity Resources.LoadAsync使用 1、StartCoroutine(函数名)开启一个协程 2、返回值为IEnumerator的函数,函数中有yieldreturn类型返回值,当yieldreturn执行后,才会执行yieldreturn以后的代码块 3、Resources....
  • 原数据存放在StreamingAsset中,首次启动复制到persistentDataPath,以后进行更新和读取都在persistentDataPath中使用File进行文件操作。需要恢复书序的时候从StreamingAsset中获取即可。
  • Unity3DGameResource, Unity3D assetbundle resources API
  • 直接附上代码,在resources文件家中存在预制物体就可以GameObject Prefab = (GameObject)Resources.Load("Prefabs/task1"); Prefab = Instantiate(Prefab); Prefab.transform.parent = parent; Prefab.transform....
  • unity打包出现 Failed to re-package resources unity打包出现 Failed to re-package resources 在对新项目打包发布的时候出现报错提示 这个问题我搜了很多博客都没有答案,最后自己改设置发现怎么做了。 其实是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,810
精华内容 6,324
关键字:

resourcesunity