Добрый день. Как превратить string в имя переменной?
Например:
public string ИмяПеременной;
ДругойОбъект.GetComponent<НазваниеСкрипта>().ИмяПеременной += 1;
~AvA~ писал(а):Я ничего не понял, давай чуть-чуть по-нормальному попробуем
Есть скрипт, у него есть переменная типа string, этот скрипт висит на каком-то GameObject
Какой-то другой скрипт, получает эту переменную и чего ты хочешь с ней сделать?
Так же было бы неплохо указать, что сейчас происходит? Не компилируется? Какие-то ошибки? Где нормальный скрипт который ты используешь?
Не волнуйся, никто не украдёт твой скирпт, можешь смело его постить вот прям сюда
Всего одно слово - рефлексия.
seaman писал(а):Есть куча скриптов, в каждом есть переменная int. Имена переменных - разные. Нужно независимо от имени переменной изменить этот int.
Верно?
Тогда удобнее всего - интерфейсы. Эти классы должны реализовать интерфейс с методом ChangeInt(value). При нужде изменить этот value - просто кастишь к интерфейсу и вызываешь метод.Синтаксис:Используется csharppublic interface IChangeInt {
void ChangeInt(int value);
}
public myClass : IChangeInt {
private int ИмяПеременной;
public void ChangeInt(int value) {
ИмяПеременной += value;
}
...
}
private myClass myvar;
...
var c = (IChangeInt )myvar;
c.ChangeInt(1);Всего одно слово - рефлексия.
Рефлексия - мощная штука, но не всегда нужна...
Сейчас этот форум просматривают: Yandex [Bot] и гости: 25