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

Unity创建SpriteDB类型ScriptableObject报无对应脚本资产错误

Unity创建ScriptableObject提示找不到脚本资产的解决方法

问题现象

尝试通过CreateAssetMenu创建自定义ScriptableObject资产时弹出报错:

No script asset for SpriteDB. Check that the definition is in a file of the same name and that it compiles properly

对应SpriteDB脚本代码如下:

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

[CreateAssetMenu(fileName = "SpriteDB", menuName = "AR+GPS/SpriteDB")]
public class SpriteDB : ScriptableObject
{
    
    public class Iconos{
        
        public string nombre;
        public Sprite icon;
        public string url;
    }
    public List<Iconos> Entries;
    public Sprite GetEntryById(string Id)
    {
        Sprite result = null;

        foreach (var entry in Entries)
        {
            if (entry.nombre == Id)
            {
                result = entry.icon;
                break;
            }
        }

        return result;
    }

}

相关文件结构与报错截图:
项目文件结构截图
报错弹窗截图

排查修复步骤

按以下顺序逐一排查即可解决问题:

  • 检查脚本文件名匹配性:Unity强制要求,继承自ScriptableObject、MonoBehaviour的顶层C#类,所在.cs文件的文件名必须和类名完全一致(大小写敏感)。确认存放SpriteDB类的脚本文件名为SpriteDB.cs,如果存在拼写偏差、大小写错误、多余后缀,直接重命名文件即可,这是该报错最常见的诱因。
  • 排查全局编译错误:打开Unity Console面板,清空日志后等待脚本重新编译,只要项目中存在任意脚本编译错误,整个C#程序集都不会完成加载,SpriteDB类自然无法被识别。修复所有编译报错,等待编译进度条走完后再尝试创建资产。
  • 补全序列化特性(解决后续Inspector赋值异常):你代码中嵌套的Iconos类没有加序列化标记,即使资产创建成功,Inspector面板也无法正常显示和赋值Entries列表,需要给该类添加[System.Serializable]特性,修正后的代码段如下:
    [System.Serializable]
    public class Iconos{
        public string nombre;
        public Sprite icon;
        public string url;
    }
    
  • 修复缓存异常:如果前两项检查都没有问题,关闭Unity,删除项目根目录下的Library和Temp缓存文件夹,重新打开Unity等待资产全量重新导入、编译完成即可,这类问题一般是Unity资产数据库缓存损坏导致的偶发问题。
  • 检查脚本所属程序集:确认SpriteDB脚本没有放在Editor等纯Editor专属文件夹下,也没有被归入Editor类的程序集定义(asmdef)中,运行时使用的ScriptableObject类必须归属到运行时程序集,否则无法正常创建资产。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 03:51:28