Unity加载资源--Resources

Unity加载资源–Resources

0. Unity中的Resources.Load方法使用总结

在Unity中我们最开始使用资源是通过public公开变量的方式在外部进行赋值或者拖拽的方式指定预制体,图片,音频等资源.

但是这样很麻烦,一不小心就忽略空指针异常, 如果项目更新,就需要重新拖拽. 如果是测试的话,使用拖拽的方式还是可以的. 如果是项目的话还是要通过代码的方式来加载资源.

关于小型项目的话就可以使用Unity自带的Resource相关的函数来加载资源. 前提是我们得知道或者要加载的资源应该存放在哪个文件中.

Unity加载资源的文件夹需要自己创建名字为Resources. 名字不能错, 可以有多个Resources文件夹.Resouces文件夹下可以有多个文件夹, 也就是可以按照类型或者自己的喜好来分类存储,比如:Model 模型, Texture 贴图 Audio 音频等具有含义的文件夹.

使用Resources.Load相关的API进行加载资源.

Resources.Load是Unity中一种简单且常用的资源加载方式,主要适用于小型项目或快速原型制作。以下是关于Resources.Load加载资源的内容总结:

1. 基本用法

  • Resources.Load方法可以从项目的Resources文件夹中加载资源。
  • Resources.Load<T> 方法是加载指定类型的资源
  • 调用时需要指定资源的路径和名称,路径可以是子文件夹。

2. 加载不同类型的资源

  • 预制体:如Resources.Load("Cube"),加载名为“Cube”的预制体。
  • 音频剪辑:如Resources.Load("Music/BGM"),加载名为“BGM”的音乐文件,不用填写后缀名
  • 文本文件:通过泛型方法加载,如Resources.Load<TextAsset>("Documents/ReadMe"),加载“ReadMe”文本文件。
  • 图片:如Resources.Load<Texture>("Pictures/Picture"),加载名为“Picture”的图片。

3. 加载机制

  • Resources.Load在运行时加载资源,资源会被打包进游戏文件中。
  • 加载的资源不是实例化的,需要使用Instantiate方法来实例化预制体。

4. 注意事项

  • Resources文件夹中的资源在构建游戏时会被直接打包,不适用于大型或频繁更新的资源。
  • 使用Resources.Load加载的资源无法通过AssetBundle进行版本控制或更新。
  • 加载的资源路径和名称必须正确,否则会返回null。

5. 替代方案

  • 对于大型项目,建议使用AssetBundles或Addressables进行资源管理,它们提供更灵活的资源加载方式,支持资源的更新和版本控制。
    总结来说,Resources.Load是Unity中一种基础的资源加载方法,适用于小型项目或开发过程中的快速原型制作。但对于大型或需要高效资源管理的项目,应考虑使用更高级的资源管理系统。

6.以下是测试代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class LoadResource : MonoBehaviour
{
    AudioSource audioSource;
    Texture texture;
    // Start is called before the first frame update
    void Start()
    {
        // 加载Resources文件夹下的预制体
        GameObject go = Resources.Load("Cube") as GameObject;
        Instantiate(go);

        // 加载其他文件夹下的Resources下的预制体
        GameObject goSphere = Resources.Load("Sphere") as GameObject;
        Instantiate(goSphere);

        // 加载音频文件
        
        AudioClip audioClip = Resources.Load("Music/BGM") as AudioClip;
        audioSource = this.gameObject.AddComponent<AudioSource>();

        audioSource.clip = audioClip;

        // 使用泛型加载文本
        TextAsset textAsset = Resources.Load<TextAsset>("Documents/ReadMe");
        string textString = textAsset.text;
        Debug.Log(textString);

        // 使用泛型加载图片
        texture  = Resources.Load<Texture>("Pictures/Picture");

    }

    // Update is called once per frame
    void Update()
    {
        // 空格键破播放和暂停
        if (Input.GetKeyDown(KeyCode.Space))
        {
            if (audioSource.isPlaying)
            {
                audioSource.Pause();
            }
            else
            {   
                audioSource.Play();
            }
        }
    }

    //测试加载的图片
    void OnGUI()
    {
        if(texture != null)
        {
             GUI.DrawTexture(new Rect(0,0,Screen.width, Screen.height)), texture);
        }
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/762935.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Ubuntu20.04 安装 cudatookit 12.2 + cudnn 安装

最简约的部署Ubuntu20.04深度学习环境的教程 1. 安装Ubuntu20.04 系统 B站详细的安装教程 简约安装版 2. 安装Nvidia显卡驱动 我参考了各种资料&#xff0c;重装系统&#xff0c;完美解决开机显示器黑屏无法进入桌面的情况 黑屏问题主要是由linux内核更新导致&#xff0c;…

混合注意力机制 -- Convolutional Block Attention Module(CBAM)

CBAM CBAM 模块概述 通道注意力模块&#xff08;Channel Attention Mechanism&#xff09;和空间注意力模块&#xff08;Spatial Attention Mechanism&#xff09;是注意力机制的两种主要形式&#xff0c;它们分别通过对通道维度和空间维度的特征图进行加权&#xff0c;从而使…

算法金 | Transformer,一个神奇的算法模型!!

大侠幸会&#xff0c;在下全网同名「算法金」 0 基础转 AI 上岸&#xff0c;多个算法赛 Top 「日更万日&#xff0c;让更多人享受智能乐趣」 抱个拳&#xff0c;送个礼 在现代自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;Transformer 模型的出现带来了革命性的变…

每日一题-验证回文串

&#x1f308;个人主页&#xff1a;羽晨同学 &#x1f4ab;个人格言:“成为自己未来的主人~” //验证回文串 #include<vector> class Solution { public:bool reverseString(char s) {return (s > a && s < z) ||(s > 0 && s < 9) ||(s…

Lesson 43 Hurry up!

Lesson 43 Hurry up! 词汇 of course 当然【口语】 经常出现在口语交际中&#xff1a; Of course not. 当然不。 同义词&#xff1a; Certainly 当然。 Certainly not. 当然不。 注意语气&#xff1a;略带挑衅。Sure. 当然。 Sure not. 当然不。 Not sure. 不一定。 kettle…

Pandas 学习笔记(一)

一、pandas简介 Pandas 是 Python 语言的一个扩展程序库&#xff0c;用于数据分析。 Pandas 名字衍生自术语 "panel data"&#xff08;面板数据&#xff09;和 "Python data analysis"&#xff08;Python 数据分析&#xff09;。 Pandas 是一个开放源码…

Python + OpenCV 酷游地址教学V鄋KWK3589

本篇文章汇整了一系列的Python OpenCV 教学&#xff0c;只要按照教学文的顺序阅读和实作&#xff0c;就可以轻松入门OpenCV&#xff0c;并透过OpenCV 实现许多影像相关的创意应用。 接下来我们来介绍OpenCV-- OpenCV 是一个跨平台的电脑视觉函式库( 模组) &#xff0c;可应用…

CesiumJS【Basic】- #042 绘制纹理线(Primitive方式)

文章目录 绘制纹理线(Primitive方式)1 目标2 代码2.1 main.ts3 资源文件绘制纹理线(Primitive方式) 1 目标 使用Primitive方式绘制纹理线 2 代码 2.1 main.ts var start = Cesium.Cartesian3

SSM泰华超市商品管理系统-计算机毕业设计源码11946

目 录 摘要 1 绪论 1.1 研究背景 1.2 研究意义 1.3论文结构与章节安排 2系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据新增流程 3.2.2 数据删除流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.2 非功能性分析 2.4 系统用例分析 2.5本章小结 3 系统总体设…

一键把二次元老婆拉进现实(Stable Diffusion进阶:ControlNet LineArt模型)

大家好我是极客菌&#xff01;&#xff01;&#xff01; 操作&#xff0c;就能将二次元老婆拉进现实&#xff0c;成为你的专属女友。本文将带你深入了解ControlNet LineArt模型的使用方法&#xff0c;助你轻松实现这一梦想。 ControlNet LineArt模型是Stable Diffusion的最新…

AI大模型日报#0701:Meta发布LLM Compiler、扒一扒Sora两带头人博士论文

导读&#xff1a;AI大模型日报&#xff0c;爬虫LLM自动生成&#xff0c;一文览尽每日AI大模型要点资讯&#xff01;目前采用“文心一言”&#xff08;ERNIE-4.0-8K-latest&#xff09;生成了今日要点以及每条资讯的摘要。欢迎阅读&#xff01;《AI大模型日报》今日要点&#xf…

32.哀家要长脑子了!

1.299. 猜数字游戏 - 力扣&#xff08;LeetCode&#xff09; 公牛还是挺好数的&#xff0c;奶牛。。。妈呀&#xff0c;一朝打回解放前 抓本质抓本质&#xff0c;有多少位非公牛数可以通过重新排列转换公牛数字&#xff0c;意思就是&#xff0c;当这个数不是公牛数字时&#x…

控制器方法执行流程和 @InitBinder【Spring源码学习】

控制器方法执行流程 InitBinder 加在ControllerAdvice中 首先说明ControllerAdvice和aop没有任何关系&#xff01; 加在ControllerAdvice中只对所有控制器都生效 全局的在开始时就会保存到handlerMappingAdapter中的cache中&#xff1b; 加在Controller中 加在controller中只对…

TS---typescript的安装和tsc命令使用

什么是TS---typescript&#xff1f; &#xff08;TypeScript是Microsoft公司注册商标&#xff09; TypeScript具有类型系统&#xff0c;且是JavaScript的超集&#xff0c; 它可以编译成普通的JavaScript代码。TypeScript支持任意浏览器&#xff0c;任意环境&#xff0c;任意系…

仓库管理系统24--统计报表

原创不易&#xff0c;打字不易&#xff0c;截图不易&#xff0c;多多点赞&#xff0c;送人玫瑰&#xff0c;留有余香&#xff0c;财务自由明日实现 1、引用LiveCharts 2、创建LiveChartViewModel using GalaSoft.MvvmLight; using LiveCharts.Wpf; using LiveCharts; using Sy…

手把手搞定报名亚马逊科技认证

引言 亚马逊云科技认证考试为我们这些技术从业者提供了提升专业技能的机会。无论选择线上还是线下考试&#xff0c;每种方式都有其独特的优势和挑战。选择合适的考试方式将帮助我们更好地展示自己的技术水平。以下是我对不同考试方式的优缺点介绍&#xff0c;以及各科目的考试…

Java案例抢红包

目录 一&#xff1a;题目要求&#xff1a; 二&#xff1a;思路分析&#xff1a;&#xff08;遇见问题先想出完整的思路逻辑再去动手事半功倍&#xff09; 三&#xff1a;具体代码&#xff1a; 一&#xff1a;题目要求&#xff1a; 二&#xff1a;思路分析&#xff1a;&#x…

基于隐马尔可夫模型的股票预测【HMM】

基于机器学习方法的股票预测系列文章目录 一、基于强化学习DQN的股票预测【股票交易】 二、基于CNN的股票预测方法【卷积神经网络】 三、基于隐马尔可夫模型的股票预测【HMM】 文章目录 基于机器学习方法的股票预测系列文章目录一、HMM模型简介&#xff08;1&#xff09;前向后…

Python容器 之 列表--下标和切片

列表的切片 得到是 新的列表字符串的切片 得到是 新的字符串 如果下标 不存在会报错 list1 [1, 3.14, "hello", False] print(list1)# 获取 列表中 第一个数据 print(list1[0]) # 1# 获取列表中的最后一个数据 print(list1[-1]) # [False]# 获取中间两个数 即 3.1…

面经-数据库

1.MySQL 1.1什么是MySQL? MySQL 是⼀种关系型数据库&#xff0c;在 Java 企业级开发中⾮常常⽤&#xff0c;因为 MySQL 是开源免费的&#xff0c;并 且⽅便扩展。阿⾥巴巴数据库系统也⼤量⽤到了 MySQL &#xff0c;因此它的稳定性是有保障的。 MySQL 是开放源代码的&…