Можно ли поменять переменные во всех одинаковых скриптах в массиве из одинаковых объектов? Unity. Если можно, то как?

Пишу игру Tower Defense в Unity. В игре есть 3 типа турелей. Нужно сделать систему улучшений турелей, то есть создать 3 массива с разными типами турелей (делаю это по тэгам), чтобы менять их характеристики(переменные) по кнопке. Башни различаются только по тэгам, названиям и переменным в скрипте. Вопрос только в том, как поменять переменные сразу у всех объектов в массиве, если скрипт у всех одинаковый. Пока что вот мой код

{
    tower1 = GameObject.FindGameObjectsWithTag("tower1").GetComponent<Tower[]>();
    tower1.dmg = tower1.dmg + 23;
    tower1.shootDelay = tower1.shootDelay / 100 * 90;
    money.money1 = money.money1 - upgrdT1;
    upgrdT1 = upgrdT1 * 2;
}

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

Автор решения: Alexey

Cамый элементарный способ

using System.Linq;

internal sealed class Example : MonoBehaviour
{
    private void Start()
    {
        Turel[] turels = TurelFactory.GetAllTurels();

        turels.Select(t => t.dmg + 23);
        turels.Select(t => t. shootDelay / 100 * 90);
    }
}
→ Ссылка