Unity中CS1061/CS0120错误及SerializeField不显示问题求助
Unity开发问题排查方案
问题1:[SerializeField]字段无法在编辑器中显示
- 先检查脚本是否正确挂载到GameObject上,且该GameObject处于选中状态
- 确认字段不是
static或const类型,这两种类型无法被Unity序列化显示 - 优先解决编译错误(你提到的CS1061/CS0120),编译失败时Unity不会刷新序列化字段
- 如果字段是自定义类类型,要给该类加上
[System.Serializable]特性,否则Unity不支持序列化 - 检查脚本类名和文件名是否完全一致,Unity要求两者必须同名,否则会导致序列化异常
问题2:CS1061与CS0120错误(关联Controls变量)
先明确两个错误的核心原因:
- CS1061:调用了对象不存在的属性/方法,比如你访问的
xxx.Controls或其下的成员不存在 - CS0120:访问非静态成员时没有使用对象实例,比如直接用类名调用实例变量
针对AttackingMechanic的CS1061错误
- 检查Controls实例是否正确初始化:如果是Unity新输入系统的自动生成类,要确保在Awake/Start中通过
new Controls()创建实例,或者通过GetComponent<PlayerInput>().controls获取 - 核对拼写与成员名:确保调用的属性/方法和Controls类中的定义完全一致(包括大小写),比如是
Controls.Player.Attack还是Controls.Attack - 确认Controls类已生成:打开
Edit > Project Settings > Input System Package,勾选"Generate C# Class",并确保对应的.cs文件已出现在Assets目录中
针对UserInput的CS0120错误
- 区分静态与实例成员:如果Controls是实例字段,不能直接用
UserInput.Controls访问,需要先通过GetComponent<UserInput>()获取脚本实例,再访问其Controls变量 - 若需全局访问Controls:可以将其声明为
public static Controls Controls;,并在Awake中初始化(比如Controls = new Controls();),同时做好单例避免重复创建 - 静态方法中禁用实例成员:如果在静态方法里使用Controls,必须保证它是静态变量,或者传入脚本实例作为参数
示例代码参考
AttackingMechanic脚本(正确初始化Controls)
using UnityEngine; using UnityEngine.InputSystem; public class AttackingMechanic : MonoBehaviour { [SerializeField] private float attackDamage = 10f; private Controls _playerControls; private void Awake() { _playerControls = new Controls(); // 绑定攻击输入的响应事件 _playerControls.Player.Attack.performed += _ => DoAttack(); } private void DoAttack() { Debug.Log($"发动攻击,造成{attackDamage}点伤害"); } private void OnEnable() { _playerControls.Enable(); } private void OnDisable() { _playerControls.Disable(); } }
UserInput脚本(全局静态Controls示例)
using UnityEngine; using UnityEngine.InputSystem; public class UserInput : MonoBehaviour { public static Controls GlobalControls; private void Awake() { if (GlobalControls == null) { GlobalControls = new Controls(); GlobalControls.Enable(); DontDestroyOnLoad(gameObject); } else { Destroy(gameObject); } } }
内容的提问来源于stack exchange,提问作者Edward Roach
相关产品推荐
相关产品推荐

