You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity中如何加载指定文件夹下所有ScriptableObject组成数组

Unity Resources.LoadAll 无法加载ScriptableObject排查方案

你定义的ScriptableChar类本身写法没有语法问题:

[CreateAssetMenu(fileName = "New Char", menuName = "Char")]
public class ScriptableChar : ScriptableObject
{
    public string charName;
    public Sprite charSprite;
    public Sprite charBorderSprite;
    public CharClass charClass;
}

你尝试过的两种加载写法里,非泛型和泛型的语法本身都是正确的:

public Object[] allCharacters = Resources.LoadAll("Cards");
void GetAllCharactersArray()
{
    ScriptableChar[] allCharacters = Resources.LoadAll<ScriptableChar>("Cards");
    Debug.Log("Characters: "+allCharacters.Length);
}

加载返回空数组基本都是以下几个配置类问题,按顺序排查即可:

  • 核心规则前置:Resources.Load/LoadAll接口仅能识别存放在名为Resources的特殊文件夹内的资源,这是占比最高的故障原因。你要加载的Cards文件夹必须是Resources文件夹的子目录,合法路径示例:Assets/Resources/Cards/。如果Cards文件夹直接放在Assets根目录、或其他非Resources目录下,任何加载代码都会返回空。

    提示:项目内可以存在多个Resources文件夹,运行时会自动合并所有Resources目录下的资源,但不建议创建多份Resources目录,会增大应用启动时的资源初始化开销。

  • 检查路径拼写:加载参数不需要带.asset等文件后缀,也不需要写Assets/开头的全路径,如果Cards文件夹嵌套在Resources的子目录下,要写全相对路径,比如资源实际路径为Assets/Resources/GameConfig/Cards,加载参数就要传"GameConfig/Cards"。
  • 检查资源类型匹配:点选Cards文件夹内的单个角色资产,查看Inspector面板顶部的类型标识,确认资产真的是ScriptableChar类型,而非其他同名ScriptableObject类、预制体、文本文件等其他类型资源。如果之前改过ScriptableChar类的类名、命名空间,旧的资产会丢失类型引用,需要重新创建。
  • 检查类的存放位置:ScriptableChar类不能放在Editor文件夹下,否则运行时会找不到对应类型,导致泛型加载过滤不到对应资源。
  • 检查AssetBundle配置:如果Cards下的资产被分配到了自定义AssetBundle包中,Resources接口无法读取这部分资源,需要通过AssetBundle加载接口获取。

可以先跑下面的测试代码定位具体问题:

void TestLoad()
{
    // 先加载目标路径下所有类型的资源
    Object[] allResInPath = Resources.LoadAll("Cards");
    Debug.Log($"Cards路径下资源总数:{allResInPath.Length}");
    foreach (Object res in allResInPath)
    {
        Debug.Log($"资源名:{res.name},资源类型:{res.GetType().FullName}");
    }

    // 再过滤指定类型的资源
    ScriptableChar[] allCharAssets = Resources.LoadAll<ScriptableChar>("Cards");
    Debug.Log($"匹配ScriptableChar类型的资源数:{allCharAssets.Length}");
}

如果第一条日志输出为0,直接修正文件夹位置,把Cards移动到Resources目录下即可;如果第一条日志有数值、第二条为0,对照资源类型、类存放位置的排查项处理即可。

内容的提问来源于stack exchange,提问作者Kypindor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 06:09:19