Можно ли поменять переменные во всех одинаковых скриптах в массиве из одинаковых объектов? 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);
}
}