Ошибка 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 и не может просчитать никакие длины. Потому что это просто класс, черновик, набросок

→ Ссылка