Unity中Range函数声明触发需定义方法体报错的原因是什么?
报错原因
你收到的报错提示实际为 Must declare a body because it's not marked abstract, extern, or partial,提示中的
extract属于拼写误差,正确关键词为extern。
- C#语法明确要求:只有三类方法允许仅写声明、不写实现体:
- 标记了
abstract的抽象方法 - 标记了
extern的外部实现方法(常用于调用其他语言封装的库接口) - 标记了
partial的分部方法
- 标记了
- 你当前声明的
int Range(int minValue, int maxValue);不属于上述三类方法,没有补充大括号包裹的方法实现逻辑,因此触发编译报错。
解决方案
根据你的实际需求二选一即可:
- 如果你是要使用Unity内置的随机数生成能力,不需要自行声明
Range方法,直接调用Unity封装好的静态方法即可:
// 示例:生成1~10之间的随机整数(左闭右开规则,包含1、不包含10) int randomResult = UnityEngine.Random.Range(1, 10);
- 如果你确实需要自定义
Range方法的逻辑,补充完整的方法实现体即可,示例:
// 自定义Range方法示例,可根据你的需求修改内部逻辑 int Range(int minValue, int maxValue) { if(minValue > maxValue) { (maxValue, minValue) = (minValue, maxValue); } return UnityEngine.Random.Range(minValue, maxValue); } // Start is called before the first frame update void Start() { // 你的原有逻辑 }
内容的提问来源于stack exchange,提问作者Perry
相关产品推荐
相关产品推荐

