Mar*_*kou 9 c# random unity-game-engine
我正在写一个统一的游戏,我想创建一个随机整数...我使用以下内容:
public Random ran = new Random();
public int power = ran.Next(0, 10);
Run Code Online (Sandbox Code Playgroud)
但是当我想运行程序时它会给我以下错误:
类型'UnityEngine.Random'不包含'Next'的定义,也没有找到'UnityEngine.Random'类型的扩展方法'Next'(你是否缺少using指令或汇编引用?)
有什么人帮我解决了什么问题???
Chr*_*tos 16
您应该使用System.Random该类,因为此类有一个名为的方法Next.有关此问题的进一步文档,请查看此处.我想这是你的错误,因为从你得到的错误信息中,很明显UnityEngine.Random该类被使用而不是System.Random.在代码方面,我会尝试这样做:
public System.Random ran = new System.Random();
public int power = ran.Next(0, 10);
Run Code Online (Sandbox Code Playgroud)
更新
使用 System.Random我们将解决命名冲突的问题,但会出现另一个问题.在类的主体内键入以上两行,如下所示:
public class Program
{
public System.Random ran = new System.Random();
public int power = ran.Next(0, 10);
}
Run Code Online (Sandbox Code Playgroud)
您会注意到编译器警告您发生了错误,如果您尝试构建项目,您将收到以下消息:
字段初始值设定项不能引用非静态字段,方法或属性
为了解决这个问题,有两种选择:
a)制作 ran成为静态的:
public class Program
{
public static System.Random ran = new System.Random();
public int power = ran.Next(0, 10);
}
Run Code Online (Sandbox Code Playgroud)
b)移动power构造函数内部的初始化:
public class Program
{
public System.Random ran = new System.Random();
public int power;
public Program()
{
power = ran.Next(0, 10);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14088 次 |
| 最近记录: |