Ошибка CS0236 при попытке объявить переменную
В классе создал array, состоящий из объектов GameObject. Затем при попытке создания переменной blocksAmount она подсвечивается красным и выдает ошибку:
CS0236 : A field initializer cannot reference the nonstatic field, method, or property 'Ball.initialBlocksAmount'
Ниже код.
public class Ball : MonoBehaviour
{
[SerializeField] GameObject[] initialBlocksAmount = UnityEngine.GameObject.FindGameObjectsWithTag("block");
int blocksAmount = initialBlocksAmount.Length;
Помогите, пожалуйста, понять ошибку.
Ответы (1 шт):
Автор решения: Алексей Шиманский
→ Ссылка
Количество можно получить только внутри какого-либо метода, например
int blocksAmount;
public void Start() {
blocksAmount = initialBlocksAmount.Length;
}
До компиляции, до запуска игры, до создания объекта, компилятор ничего не знает об initialBlocksAmount и не может просчитать никакие длины. Потому что это просто класс, черновик, набросок