声明引发错误:必须声明一个主体,因为它没有标记为abstract、extract或partial:
int Range(int minValue, int maxValue);
// Start is called before the first frame update
void Start()
{
.
.
.
}
int Range(int minValue, int maxValue);
实际上看起来像是一个名为Range
的方法的抽象方法签名,该方法使用两个int
参数。这就是编译器告诉你的:它希望你实现";方法";像
int Range(int minValue, int maxValue)
{
return someIntValue;
}
我想做的是使用Random在一个范围内生成一个int,该范围将用于索引数组
听起来你想做的事情就像
private int someRandomValue = Random.Range(minValue, maxValue);
注意但是:只有当这里的minValue
和maxValue
是const
或至少是static
时,这才有可能,因为字段将在执行此类型的构造函数之前初始化=>不能使用任何实例字段(例如,来自Inspector(
否则,您需要初始化字段,例如
private int someRandomValue;
private void Awake ()
{
someRandomValue = Random.Range(minValue, maxValue);
}
如果这是一个阵列,你可能会想做
private void Awake ()
{
someRandomValue = Random.Range(0, theArray.Length);
}
实际上,您的语句int Range(int minValue, int maxValue);
对编译器来说就像是一个方法声明。如果没有看到该文件中的其余代码,我就无法轻松确定您要完成的是什么。
只需使用Unity 中的RangeAttribute
[Range(1, 6)]
public int integerRange;