Unity编写Inventory类时Start函数已加}仍提示缺失如何解决
报错原因及解决方案
根因说明
你遇到的大括号缺失报错是误导性提示,本质由代码语法错误触发,具体问题如下:
- C#语法严格区分大小写,访问修饰符关键字为小写
public,你代码中使用的大写Public属于非法标识符 - 方法内部定义的变量为局部变量,局部变量不允许添加任何访问修饰符(public/protected/private等均不可用),你在
Start方法内定义Slots变量时加了访问修饰符,违反了C#语法规则 - C#编译器识别到非法关键字后,会中断当前代码块的结构解析,因此抛出了和实际问题不符的「缺少闭合大括号」报错,你的大括号本身没有书写错误。
修复方法
根据你的业务需求二选一即可:
方案1:将Slots作为Start方法局部变量
直接删除变量前的Public关键字,修改后代码如下:
public class Inventory : MonoBehaviour { void Start() { InvSlot[] Slots = new InvSlot[23]; } }
方案2:将Slots作为Inventory类的公开成员变量
如果需要在其他方法或外部脚本访问Slots,将变量定义移到方法外部,同时把Public改为小写public,修改后代码如下:
public class Inventory : MonoBehaviour { public InvSlot[] Slots = new InvSlot[23]; void Start() { } }
内容的提问来源于stack exchange,提问作者Mason Walker
相关产品推荐
相关产品推荐

