Unity中ReSharper提示SerializeField私有字段可设为readonly的解决办法
解决ReSharper对带[SerializeField]私有字段的「Field can be made readonly」警告
针对这个问题,有三种常用的解决方式:
直接添加
readonly修饰符
Unity允许对带有[SerializeField]的字段使用readonly,只要你不在代码逻辑中修改该字段(仅通过Inspector赋值),就可以安全添加。这样既满足ReSharper的代码规范检查,又不影响Unity的序列化功能。示例代码:[SerializeField] private readonly Sprite _sprite = null;修改ReSharper的检查规则
如果不想逐个字段修改,可以全局禁用针对带[SerializeField]字段的该警告:- 打开ReSharper设置(路径:
File → Settings → ReSharper → Options) - 导航到
Code Inspection → Inspection Severity - 搜索「Field can be made readonly」规则
- 为该规则添加例外条件:当字段带有
SerializeField属性时,将警告级别设为「Do not show」
- 打开ReSharper设置(路径:
用注释单独抑制警告
如果你只想针对某个特定字段跳过检查,可以在字段上方添加ReSharper的抑制注释:// ReSharper disable once FieldCanBeMadeReadOnly.Local [SerializeField] private Sprite _sprite = null;
内容的提问来源于stack exchange,提问作者sonnyb
相关产品推荐
相关产品推荐

