• 【Unity3D日常开发】Unity3D的Resources不同目录的加载分析


    推荐阅读

    大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。

    一、前言

    xdm,国庆节快乐呀,无聊学习一会,跟大家分享一点点知识。

    Resources目录大家应该很熟悉了,这个是Unity3D的一个特殊文件夹,用来加载文件的。

    构建项目时,会将Resources目录中的所有的资源和对象都合并到一个序列化文件中,该文件中包含元数据和索引信息,该索引包含一个序列化查找树,用于将给定对象的名称解析为其适当的文件GUID和本地ID。这么一说,跟AssetBundle也有点类似哦。

    Resources的使用的话就很简单,将文件放到Resources文件夹内,然后使用Resourcesl.Load加载就行,比如:

    void Start()
    {
    	Resources.Load("Test");
    }
    
    • 1
    • 2
    • 3
    • 4

    当然,加载也有很多要注意的点,比如反斜杠、文件类型、文件后缀名的,增加应用程序的启动时间和构建时间,无法增量更新等问题。

    但是,今天咱们要讨论的是不同目录的Resources文件夹的加载。

    二、不同目录下的Resources加载

    2-1、开始之前解释一下

    大家可能会问,Resources在其他目录还能加载呢,Resources放不同目录干嘛呢?

    Resources文件夹在其他目录也是管用的,跟Editor文件夹类似,放到其他目录没事,只要是这个文件名就能加载。

    ②为啥要放不同的目录呢,因为对于一个项目如何有多个同事协同开发,如何都将文件放到根目录的Resources下不便于管理,因为不知道这个文件夹下的其他文件有没有用,都不敢删。

    言归正传,那么不同目录下的Resources如何加载呢?

    2-1、不同目录下的Resources加载

    比如,两个同事,H和Z开发同一个项目,负责开发不同的场景,就各自在根目录下创建一个自己的文件夹,然后在文件夹下创建目录,比如:
    在这里插入图片描述
    在自己的文件夹的Scripts文件夹下,新建脚本ReLoadTest.cs双击打开脚本,编辑代码:

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public class ReLoadTest : MonoBehaviour
    {
        // Start is called before the first frame update
        void Start()
        {
            string info = Resources.Load<TextAsset>("loadZ").text;
            Debug.Log(info);
        }
    
        // Update is called once per frame
        void Update()
        {
    
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    创建个loadZ.txt文件,随便键入点内容:
    在这里插入图片描述
    运行程序:
    在这里插入图片描述
    我还可以加载其他目录下的Resources文件夹内的内容(注意加载文件名):

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public class ReLoadTest : MonoBehaviour
    {
        // Start is called before the first frame update
        void Start()
        {
            string info = Resources.Load<TextAsset>("loadH").text;
            Debug.Log(info);
        }
    
        // Update is called once per frame
        void Update()
        {
    
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    运行结果:
    在这里插入图片描述

    三、后记

    如果觉得本篇文章有用别忘了点个关注,关注不迷路,持续分享更多Unity干货文章。


    你的点赞就是对博主的支持,有问题记得留言:

    博主主页有联系方式。

    博主还有跟多宝藏文章等待你的发掘哦:

    专栏方向简介
    Unity3D开发小游戏小游戏开发教程分享一些使用Unity3D引擎开发的小游戏,分享一些制作小游戏的教程。
    Unity3D从入门到进阶入门从自学Unity中获取灵感,总结从零开始学习Unity的路线,有C#和Unity的知识。
    Unity3D之UGUIUGUIUnity的UI系统UGUI全解析,从UGUI的基础控件开始讲起,然后将UGUI的原理,UGUI的使用全面教学。
    Unity3D之读取数据文件读取使用Unity3D读取txt文档、json文档、xml文档、csv文档、Excel文档。
    Unity3D之数据集合数据集合数组集合:数组、List、字典、堆栈、链表等数据集合知识分享。
    Unity3D之VR/AR(虚拟仿真)开发虚拟仿真总结博主工作常见的虚拟仿真需求进行案例讲解。
    Unity3D之插件插件主要分享在Unity开发中用到的一些插件使用方法,插件介绍等
    Unity3D之日常开发日常记录主要是博主日常开发中用到的,用到的方法技巧,开发思路,代码分享等
    Unity3D之日常BUG日常记录记录在使用Unity3D编辑器开发项目过程中,遇到的BUG和坑,让后来人可以有些参考。
  • 相关阅读:
    Automated_bounty_Hunter单域名全扫描“神器”—脚本
    [DP] DP优化总结
    IPKISS Tutorials ------merge elements(合并对象)
    oracle ORA-01219、ORA-01507和ORA-04043报错
    【Spring Security】请求莫名重定向至login的问题
    Linux安装git和maven——拉取代码 --> mvn打包成jar包 --->运行jar包
    SpringSecurity自定义多Provider时提示No AuthenticationProvider问题的解决方案与原理(一)
    [无监督学习] 14.详细图解k-means 算法
    WEB漏洞原理之---【组件安全】
    windows系统使用cmd执行.py文件并且传入参数 | 神经网络模型训练 | 主打能用就行
  • 原文地址:https://blog.csdn.net/q764424567/article/details/133496005