Unity extention програмно создать переменные

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

Unity extention програмно создать переменные

Сообщение Volcara 21 фев 2013, 14:05

Доброго времени суток эксперты! Создаю небольшой плагинчик для упрощения монотонной одинаковой работы.
Возникла заминка с добавлением текстур в массив скрипта. Собственно что сделано и что делает плагин: Он создает книгу в игре. Сделано окно Editora где создается сама книга, все ее параметры и прочее - с этим проблем нет, но вот после указания количества страниц в книге необходимо создать переменные содержащие в себе информацию о каждой - а конкретнее о текстуре выбираемой пользователем.

Посоветуйте пожалуйста как создавать программно переменные.
вот у меня массив всех страниц var pagesList = new Array();
вот переменная текстуры одной страницы var page01:Texture;
при такой схеме pagesList.Add(EditorGUILayout.ObjectField("Pick page",page01,Texture, true)); все прекрасно работает, НО изначально то не известно сколько страниц будет в книге, то есть в ней может быть и 100 страниц, не создавать же 100 var page01:Texture; var page02:Texture;.

извините за сумбурное изложение вопроса, мозг кипит...
Зарание спасибо за любую помощь.
Volcara
UNец
 
Сообщения: 25
Зарегистрирован: 29 ноя 2010, 17:36

Re: Unity extention програмно создать переменные

Сообщение extravert 21 фев 2013, 14:41

Видимо вы спрашиваете про добавление множества текстур, если я правильно понял вопрос. Это функция AssetDatabase.LoadAssetAtPath.
Если соль не в этом, пожалуйста уточните в течение 10 минут, пока я еще на работе.
Аватара пользователя
extravert
UNIверсал
 
Сообщения: 465
Зарегистрирован: 24 дек 2012, 11:54

Re: Unity extention програмно создать переменные

Сообщение seaman 21 фев 2013, 15:41

Вместо JS использовать C# (Не уверен, может и в JS можно также работать с List)
Вместо Array() использовать List<UnityEngine>
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Unity extention програмно создать переменные

Сообщение Volcara 21 фев 2013, 15:47

в принципе List не слишком отличается от Array - важно создать программно элементы - вот в чем вопрос

a c C# не дружу - к сожалению
Volcara
UNец
 
Сообщения: 25
Зарегистрирован: 29 ноя 2010, 17:36

Re: Unity extention програмно создать переменные

Сообщение seaman 21 фев 2013, 15:55

Ну вопрос я не понял. До сих пор. Зачем Вам их создавать отдельно, если Вы уже используете массив?
ЗЫ: List может содержать и 0 элементов и 100. Просто Add... Хотя, я все же скорее всего не понял проблемы.
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Unity extention програмно создать переменные

Сообщение Volcara 21 фев 2013, 15:59

Согласен - просто Add. и считать потом по индексу не сложно. вопрос в том, чтобы создать сами елементы по заданному числу. Что бы было что Add..)) Можно в ручную создать 100 переменных и их добавлять через Add, а нужно программно создать эти 100 переменных, а уж потом Add..
Volcara
UNец
 
Сообщения: 25
Зарегистрирован: 29 ноя 2010, 17:36

Re: Unity extention програмно создать переменные

Сообщение lawson 21 фев 2013, 16:46

напишите класс или структурку(С) в которой будите хранить страницу как индекс, а текстуры как лист в этом классе\структуре
lawson
UNIверсал
 
Сообщения: 481
Зарегистрирован: 14 сен 2012, 21:20

Re: Unity extention програмно создать переменные

Сообщение Volcara 21 фев 2013, 16:59

Ну это не тот способ который бы хотелось видеть... Ладно - спрошу проще. при нажатии на кнопку в окне плагина - назовем ее "ADD" можно создать новую переменную page01? просто переменную в которую в последствии можно будет в ручную присвоить значение. При повторном нажатии на кнопку "ADD" создать другую переменную page02 и так далее.

или может можно как-то склонировать переменную page01 а потом ее переименовать... ?
Volcara
UNец
 
Сообщения: 25
Зарегистрирован: 29 ноя 2010, 17:36

Re: Unity extention програмно создать переменные

Сообщение lawson 21 фев 2013, 17:15

пфф, да что ты себе геморой придумываешь!
кнопка Add
Синтаксис:
Используется javascript
function Add() {
 //pages - list
  pages.Add(new Page(PARAMS));
}

public class Page {
 public var page:TYPE;
 public var textures:List.<TYPE> = new List.<TYPE>();
  public function Page(PARAMS) {
   page = PARAM1;
   textures.Add(PARAMS);
 }
}

несколько сгибательно пригибательный движений и вот твоя кнопка Аdd
lawson
UNIверсал
 
Сообщения: 481
Зарегистрирован: 14 сен 2012, 21:20

Re: Unity extention програмно создать переменные

Сообщение Volcara 21 фев 2013, 17:25

Ну вот!! несколько сгибательных разгибательных..))) Спасибо большое! А геморой придумывается от необразованности - курить мне еще матчасть долго долго....
Volcara
UNец
 
Сообщения: 25
Зарегистрирован: 29 ноя 2010, 17:36

Re: Unity extention програмно создать переменные

Сообщение lawson 21 фев 2013, 17:25

ну как бы я тебе это и предлагал сделать первым своим постом 8()
ну да ладно
lawson
UNIверсал
 
Сообщения: 481
Зарегистрирован: 14 сен 2012, 21:20


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 29