obsidian/笔记文件/2.笔记/Resources动态加载资源.md
2025-03-26 00:02:56 +08:00

7.0 KiB
Raw Permalink Blame History

#unity/日常积累

使用前必须在项目中创建一个名叫Resources的文件夹这个名字是固定的。

    在一个项目可以创建多个名叫Resources的文件夹它们可以放在Assets文件夹中的任意位置使用Resources的方法加载时将对每个Resources文件夹进行查找。
    注意如果一个项目中有多个Resources文件夹则应确保里面的文件的相对路径不重复如果重复则使用Resources.Load方法加载时只会加载找到的第一个该名字的文件。

在同一个文件夹中,文件名不要重名,如果实在要重名,则加载时要使用泛型加载指定的类型。

使用Resources.Load或者Resources.LoadAll加载时路径是从Resources文件夹里面的文件夹开始的例如Resources文件夹里有一个Audio文件夹Audio文件夹里面也有一个Music文件夹Music文件夹有一个叫做Song的.mp3文件则路径是"Audio/Music/Song"

路径中的文件名末尾一定不要写后缀,写了后缀反而加载不成功。

路径可以用反斜杠来写。"Audio/Music/Song"可以写成: "Audio\Music\Song" 或者 @"Audio\Music\Song" 不建议路径用反斜杠来写,建议统一都用正斜杠来写。

Resources.Load(string 要加载的资源的路径) 返回值是Object型。 同步加载Resources文件夹中的资源。 如果有多个相同路径的资源,则只会返回找到的第一个资源。

Resources.Load(string 要加载的资源的路径, System.Type 要加载的资源的类型的Type对象) 返回值是Object型。 同步加载Resources文件夹中的指定类型的资源。 如果有多个相同类型,且相同路径的资源,则只会返回找到的第一个资源。

Resources.Load<要加载的资源的类型>(string 要加载的资源的路径) 返回值是要加载的资源的类型。 同步加载Resources文件夹中的指定类型的资源。 如果有多个相同类型,且相同路径的资源,则只会返回找到的第一个资源。

Resources.LoadAll(string 要加载的资源的文件夹路径或文件路径) 返回值是Object[]型。 同步加载Resources文件夹中指定路径的文件夹中的所有资源包括其中子孙文件夹中的所有资源然后返回到一个Object[]型数组。 如果该路径是一个文件则只会加载该文件并返回到一个Object[]型数组。 如果没有加载到任何资源则返回一个没有任何元素的Object[]型数组。

Resources.LoadAll(string 要加载的资源的文件夹路径或文件路径,System.Type 要加载的资源的类型的Type对象) 返回值是Object[]型。 同步加载Resources文件夹中指定路径的文件夹中的指定类型的所有资源包括其中子孙文件夹中的该类型的所有资源然后返回到一个Object[]型数组。 如果该路径是一个该指定类型的文件则只会加载该文件并返回到一个Object[]型数组。 如果没有加载到任何资源则返回一个没有任何元素的Object[]型数组。

Resources.LoadAll(string 要加载的资源的文件夹路径或文件路径) 同步加载Resources文件夹中指定路径的文件夹中的指定类型的所有资源包括其中子孙文件夹中的该类型的所有资源然后返回到一个Object[]型数组。 如果该路径是一个该指定类型的文件则只会加载该文件并返回到一个Object[]型数组。 如果没有加载到任何资源则返回一个没有任何元素的Object[]型数组。

Resources.LoadAsync(string 要加载的资源的路径,UnityAction