Unity编辑器自定义脚本属性未在Inspector面板显示求助
解决Unity自定义组件Inspector属性不显示问题(Debug模式正常)
常见原因及修复步骤
检查字段访问修饰符:要在Inspector显示的字段,要么设为
public,要么给私有字段添加[SerializeField]特性。私有字段未加该特性时,Inspector默认不展示,但Debug模式能读取到。
示例代码:// 方式1:public字段直接显示 public int maxCardCount; // 方式2:私有字段加序列化特性 [SerializeField] private float pickCoolDown;确认脚本继承自
MonoBehaviour:自定义组件必须继承MonoBehaviour才能作为组件挂载,且Inspector才能识别其可序列化字段。若未继承,即便挂载成功也无法显示属性。排查自定义Editor脚本冲突:如果编写了
CustomEditor相关脚本,可能因逻辑错误导致Inspector不渲染属性。可暂时移除自定义Editor脚本,观察属性是否恢复显示,以此排查问题来源。重新编译并刷新编辑器:
- 右键Project窗口,选择
Refresh - 点击顶部菜单栏
Assets > Reimport All - 关闭并重启Unity,确保Console面板无编译报错
- 右键Project窗口,选择
确保序列化类型合法:
- Unity不支持部分类型的序列化,比如自定义泛型类需添加
[Serializable]特性;优先使用List<T>而非非序列化的泛型集合 - 自定义类需标注
[Serializable]才能让其字段在Inspector显示:[Serializable] public class CardInfo { public string cardId; public Sprite cardImage; }
- Unity不支持部分类型的序列化,比如自定义泛型类需添加
验证脚本挂载有效性:移除当前挂载的组件,重新将脚本拖拽到GameObject上,确保挂载的是最新编译的脚本版本,而非旧的未更新副本。
排除项目配置问题:创建全新测试项目,导入该脚本并挂载测试,若属性正常显示,则说明原项目存在配置或资源冲突。
内容的提问来源于stack exchange,提问作者draymone
相关产品推荐
相关产品推荐

