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

Unity编辑器Inspector面板数组元素属性未显示问题排查

问题根源

你写的Sound类继承了MonoBehaviour,这就是属性不显示的直接原因。

  • 所有继承MonoBehaviour的类都是组件类型,组件必须依附在GameObject上才能存在,没法作为普通数据结构直接内嵌在其他组件的字段里序列化展示。
  • 你现在看到的元素选择入口,是Unity把这个数组识别成了「组件引用数组」,只支持拖入场景里已经存在的Sound组件,自然不会展开显示类里定义的Clip、Volume这些字段。
  • 你参考的旧教程里,Sound类肯定没有继承MonoBehaviour,属于你写代码时手滑多写了继承关系。
修复方法

直接删掉Sound类的MonoBehaviour继承即可,修改后的Sound类代码:

using UnityEngine;

[System.Serializable]
public class Sound
{
    public AudioClip Clip;
    public string Name;
    [Range(0f, 1f)]
    public float Volume;
    [Range(.1f, 3f)]
    public float Pitch;
}

改完等Unity自动重新编译脚本,再看AudioManager上的Sounds数组,就能直接展开每个元素编辑所有属性,和教程里的效果完全一致。

补充说明:如果你后续真的需要把Sound作为独立组件挂载到对象上,那只能单独创建GameObject挂载Sound组件,再把对应组件拖到数组里做引用,但这种做法做音频配置管理非常冗余,普通音频配置表用不继承MonoBehaviour的普通可序列化C#类是最优方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 04:48:15