我正在写一个统一的游戏,我想创建一个随机整数...我使用以下内容:
public Random ran = new Random();
public int power = ran.Next(0, 10);
但是当我想运行程序时它会给我以下错误:
类型'UnityEngine.Random'不包含'Next'的定义,并且找不到类型为`UnityEngine.Random'的扩展方法'Next'(您是否缺少using指令或程序集引用?)
有什么人帮我解决了什么问题???
你应该使用System.Random
类,因为这个类有一个名为Next
的方法。有关此问题的进一步文档,请查看here。我想这是你的错误,因为从你得到的错误信息中,很明显使用了UnityEngine.Random
类而不是System.Random
。在代码方面,我会尝试这样做:
public System.Random ran = new System.Random();
public int power = ran.Next(0, 10);
更新
使用System.Random
我们将解决命名冲突的问题,但会出现另一个问题。在类的主体内键入以上两行,如下所示:
public class Program
{
public System.Random ran = new System.Random();
public int power = ran.Next(0, 10);
}
您会注意到编译器警告您发生了错误,如果您尝试构建项目,您将收到以下消息:
字段初始值设定项不能引用非静态字段,方法或属性
为了解决这个问题,有两种选择:
a)使ran
静止:
public class Program
{
public static System.Random ran = new System.Random();
public int power = ran.Next(0, 10);
}
b)在构造函数中移动power
的初始化:
public class Program
{
public System.Random ran = new System.Random();
public int power;
public Program()
{
power = ran.Next(0, 10);
}
}
试试这个:
var number = Random.Range(0,10);
Unity有一个内置的Random类。相反,你可以使用:
var randomNumber = Random.Range(10);