Динамическое обращение к атрибуту класса

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Динамическое обращение к атрибуту класса

Сообщение Malganus 18 ноя 2011, 18:57

Суть вопроса такова:

Есть файл (класс) config, в нем есть публичные переменные: price, size и так далее... В другом файле есть инстанс класса config который называется, пускай, itemConfig. Если написать так
label = itemConfig.price - тогда все ок. lable принимает значение price. Но если, например, я не знаю какой именно атрибут класса нужно присвоить переменной label. может price, а может size, решение, что присваивать, приходит во время выполнения скрипта и нужно подставить имя динамически. Что то типа a = 'price'; label = config[a]; (в javascript такое прокатывает с объектами). А как Сделать это в Юнити?
Malganus
UNец
 
Сообщения: 7
Зарегистрирован: 26 авг 2011, 18:50

Re: Динамическое обращение к атрибуту класса

Сообщение seaman 18 ноя 2011, 19:16

Dictionary<string, float> attrib = new Dictionary<string, float>();

void AddAttrib(string atr, float val)
{
attrib.Add(atr, val);
}

float GetAttrib(string atr)
{
return attrib[atr];
}
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Динамическое обращение к атрибуту класса

Сообщение Malganus 18 ноя 2011, 20:26

Я иммел ввиду javascript. Значек в теме стоит..... Но суть понял, попробую накатать на Js. Спасибо за идею.
Malganus
UNец
 
Сообщения: 7
Зарегистрирован: 26 авг 2011, 18:50

Re: Динамическое обращение к атрибуту класса

Сообщение DbIMok 18 ноя 2011, 21:23

еще есть рефлексия и eval()
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.8k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05

Re: Динамическое обращение к атрибуту класса

Сообщение Malganus 23 ноя 2011, 17:40

Печально что в Unity JS нет аcсоциативных массивов, поэтому тот пример на си шарпе не прокатит. Евал в JavaScript юзать не рекомендуется, да и как он тут поможет?
Malganus
UNец
 
Сообщения: 7
Зарегистрирован: 26 авг 2011, 18:50

Re: Динамическое обращение к атрибуту класса

Сообщение DbIMok 23 ноя 2011, 18:22

не рекомендуется, если нужна высокая производительность. но тогда и юнитискрипт - какашка
Синтаксис:
Используется javascript
class Config
{
        var price: float;
        var size: int;
}

function Start ()
{
        var myConfig: Config = new Config();
        myConfig.price = 10.0;
        myConfig.size = 1;
       
        Debug.Log("Price: "+eval("myConfig.price"));
        Debug.Log("Size: "+eval("myConfig.size"));
}
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.8k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 23