В MonoBehavior я делаю объявление пользовательского объекта.Это, однако, приводит к ошибке и сбоям из-за этой ошибки:
"UnityException: RandomRangeInt не разрешается вызывать во время сериализации, вместо этого вызывайте его из Awake или Start. Вызывается из MonoBehaviour 'xxxxx' для игрового объекта'xxx'. "
RandomRangeInt находится внутри конструктора объявляемого объекта, но он вообще там не устанавливается.Я не уверен, почему это происходит, и объяснение было бы прекрасно.
С другой стороны, эта проблема полностью исчезнет, если я изменю объявление на статическую переменную (var2 в примере кода.
public class SampleClass: MonoBehaviour
{
int var1;
SampleClass2 var2;
}
public class SampleClass2
{
int var1;
public SampleClass2(){
var1 = UnityEngine.Random.RandomRange(0,10);
}
}