Как изменить публичную переменную в статичном методе? С#, Unity3D

Хочу создать делегат методов, где каждый метод отвечает за текущий уровень. Я новичок, возможно весь код неправильный.

public delegate void MyDelegate(); // Массив методов

MyDelegate[] metodsArray = new MyDelegate[] // Заполнение массива методов
{

    Level1, Level2

};

    public static int lvl = 0; // Текущий уровень

    public Text buttonText1;
    public Text buttonText2;
    public Text buttonText3;
    public Text buttonText4; // Переменные текста кнопок

 void OnMouseDown()
    {
        lvl = lvl + 1; // Следующий уровень
        metodsArray[lvl](); // Запуск следующего уровня
    }

 static void Level2()
    {
      buttonText1.text = "Новый текст"; // Сменить текст кнопки
    }

Выдает ошибку: error CS0120: An object reference is required for the non-static field, method, or property Как я понял, это из за того что переменные buttonText не статичные, но если сделать их статичными, я не смогу положить в них объекты текста. Текст делаю через canvas в Unity.


Ответы (0 шт):