不允许从MonoBehavior构造函数中调用RandomRangeInt

时间:2017-01-24 16:35:37

标签: c# unity3d random

我尝试使用UnityEngine.Random.Range(min,max)函数生成一个随机数,但是我收到了以下错误:

  

不允许从MonoBehaviour构造函数(或实例字段初始化程序)调用RandomRangeInt,而是在Awake或Start中调用它。来自MonoBehaviour' myClass'在游戏对象' GameObject'。   请参阅"脚本序列化"有关详细信息,请参阅Unity手册中的页面。   UnityEngine.Random:Range(Int32,Int32)

以下代码(我使用的简化版本):

public class myClass : MonoBehavior {
    // Some instance variables
    List<Property> listA;
    int value;

   // Constructor
    public myClass(){
        init();
        search();
    }

    public void init(){
        // Some instructions
    }

    public void search(){
        int randomNumber = UnityEngine.Random.Range(0, 10); // Error!
    }
}

我一直在互联网上搜索这个错误,但我找不到任何明确的解决方案。例如:

http://answers.unity3d.com/questions/1039914/argumentexception-randomrangeint-can-only-be-calle-1.html(但它不是静态变量)

https://forum.unity3d.com/threads/random-range-variable-problem.93054/(但我在调用Awake后需要随机数)

0 个答案:

没有答案