Я новичок программист и изучаю на данный момент C# и Unity3d.инициализация массива C# «не может ссылаться на нестатические поля, метод или свойство» error
У меня возникла проблема, так как я попытался инициализировать массив переменных public float.
[Range (0,1)]
public float appleProbability = 0.4f ;
[Range (0,1)]
public float fishProbability = 0.2f ;
[Range (0,1)]
public float cheeseProbability = 0.10f ;
[Range (0,1)]
public float poopProbability = 0.14f ;
[Range (0,1)]
public float bombProbability = 0.14f ;
[Range (0,1)]
public float starProbability = 0.02f ;
private float[] probs = new float[] {appleProbability, fishProbability, cheeseProbability, poopProbability, bombProbability, starProbability};
(код [Range (0,1)] должен сделать ползунок в инспекторе сценария в единстве, так что вы можете манипулировать общественным переменную между 0 и 1 с помощью ползунка.)
Я получаю ошибку: «Инициализатор поля не может ссылаться на нестатические поля, метод или свойство« GameManager.appleProbability ».» (То же самое для других переменных)
Я попробовал этот код для теста:
public int blub = 1;
public int hub = 2;
private int[] bla = new int[3];
bla[0] = blub;
, но я получаю сообщение об ошибке: «размер массива не может быть указан в объявлении переменной (попытка инициализации с ' новое выражение ").
Странно, что первая ошибка исчезает, когда я получаю вторую ошибку, также я не изменил код с первой ошибки.
Я прочитал этот вопрос all possible c# array initialization syntaxes , но это не поможет.
Я чувствую себя немного глупо, но я не получаю ошибку:/
Большое спасибо! Поэтому я могу использовать только статическое решение, если мой класс наследует от MonoBehaviour, потому что Unity не любит конструкторы. Я знаю, что такое статический метод или статический класс, но я не видел его в массивах, поэтому я был в замешательстве. –