Надо больше Tag

Здесь можно задать свои вопросы напрямую разработчикам Unity3D

Надо больше Tag

Сообщение Sef 29 авг 2010, 14:18

Почему на один объект можно наложить только один тег? :) На один объект по тегам можно вешать кучу характеристик.
Это конечно не критично, но и немножко сковывает.
Аватара пользователя
Sef
Старожил
 
Сообщения: 595
Зарегистрирован: 29 окт 2009, 13:24
  • ICQ

Re: Надо больше Tag

Сообщение Paul Siberdt 29 авг 2010, 14:40

Неодроповый Антарес поможет, как я понимаю, обтежить чего угодно :D
Но что Вам мешает вместо тегов пользовать параметры внутри скрипта и бродкаст-сообщения?
Аватара пользователя
Paul Siberdt
Адепт
 
Сообщения: 5317
Зарегистрирован: 20 июн 2009, 21:24
Откуда: Moscow, Russia
Skype: siberdt
  • Сайт

Re: Надо больше Tag

Сообщение Neodrop 29 авг 2010, 15:22

Да, в Антаресе есть система мультитагов (Multitags), позволяющая применить любое число тагов (tags) к одному объекту. Качай - изучай. :D
Система проста в применении как две копейки.
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Надо больше Tag

Сообщение Sef 29 авг 2010, 15:35

Да как-то не хочется ничего подключать ради этой мелочи которую можно обойти разными способами самому. Но просто было бы логично и удобно иметь это в самом Юнити :) Например мне очень нравится FindGameObjectsWithTag, но с одним тегом маловато... опять же если без лишнего кода.
Аватара пользователя
Sef
Старожил
 
Сообщения: 595
Зарегистрирован: 29 окт 2009, 13:24
  • ICQ

Re: Надо больше Tag

Сообщение Paul Siberdt 29 авг 2010, 16:34

Тогда жду пример задачи, в которой желательна мультитаговая надсройка и ваш вариант ее реализации (естесственно, в двух словах).
Зачем? Чтобы привести альтернативные примеры :)
Аватара пользователя
Paul Siberdt
Адепт
 
Сообщения: 5317
Зарегистрирован: 20 июн 2009, 21:24
Откуда: Moscow, Russia
Skype: siberdt
  • Сайт

Re: Надо больше Tag

Сообщение Sef 29 авг 2010, 16:48

Например кубик - это нечто по которому бежит персонаж или не бежит. Даю ему тег Road - персонаж по нему спокойно бежит. Без этого тега тоже кубик но с дыркой - персонаж падает. Теперь я на кубик с Road добавляю тег Ice и это уже скользкий кубик с дополнительными действиями.
И перед стартом игры по поиску тегов формирую массив который персонаж читает по ходу движения.
Аватара пользователя
Sef
Старожил
 
Сообщения: 595
Зарегистрирован: 29 окт 2009, 13:24
  • ICQ

Re: Надо больше Tag

Сообщение Paul Siberdt 29 авг 2010, 17:32

Понятно. Логика поверхности. А <Road>, <Ice> и <Road && Ice> подразумевают разные действия? Точно <Road && Ice> будет отличен от <Ice>?
1 - Можно читать материал/текстуру на поверхности и по результату определять свойства.
2 - Можно из поверхности под ногами ГетКомпонентить все, что хочется. Скажем, по true тэга <могу здесь идти> запрашиваем все данные.
3 - Можно (я извращенец, поскольку до безумия люблю бродкасты) кидать бродкаст в поверхность под ногами и получать бродкастом в ответ нужные данные.
4 - Можно пользовать мультитэги, но тут придется, действительно, создавать хитрые связки тэгов друг с другом и потом это обрабатывать.

Наверное, лучше всего использовать второй вариант, поскольку он нересурсоемкий и не требует никаких массивов и выборок, а описание поверхности достаточно будет сделать в инициализирующем скрипте этой поверхности на флажках и параметрах.
Аватара пользователя
Paul Siberdt
Адепт
 
Сообщения: 5317
Зарегистрирован: 20 июн 2009, 21:24
Откуда: Moscow, Russia
Skype: siberdt
  • Сайт

Re: Надо больше Tag

Сообщение Neodrop 29 авг 2010, 17:47

Мультитагами можно это сделать за три строчки. Но, если "не хочется ничего подключать"... [-(
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Надо больше Tag

Сообщение Sef 29 авг 2010, 19:38

Paul Siberdt писал(а):Понятно. Логика поверхности. А <Road>, <Ice> и <Road && Ice> подразумевают разные действия? Точно <Road && Ice> будет отличен от <Ice>?

Скорее подразумевают <Road + Ice>. То есть, к действию Road - возможность идти по поверхности, добавляется Ice, по которому же тоже можно идти (свойства Road), но с дополнительными фишками.

Спасибо, я то справился. У меня всё на массивах :) Просто с тегами было бы красивее... Нео бы не делал, если бы не было полезно ;)
Аватара пользователя
Sef
Старожил
 
Сообщения: 595
Зарегистрирован: 29 окт 2009, 13:24
  • ICQ

Re: Надо больше Tag

Сообщение Paul Siberdt 29 авг 2010, 19:51

Ну, я бы просто поверхности поставил два параметра - булевское isMovable плюс коэффициент льдистости. И для грунтовой дороги коэффициент был бы нулевой, для дороги по пресному льду - эдак 0.6, по солёному - 0.83, а дороге из крем-брюле назначил бы 0.4 :)
Аватара пользователя
Paul Siberdt
Адепт
 
Сообщения: 5317
Зарегистрирован: 20 июн 2009, 21:24
Откуда: Moscow, Russia
Skype: siberdt
  • Сайт

Re: Надо больше Tag

Сообщение Sef 29 авг 2010, 20:10

Paul Siberdt писал(а):Ну, я бы просто поверхности поставил два параметра - булевское isMovable плюс коэффициент льдистости. И для грунтовой дороги коэффициент был бы нулевой, для дороги по пресному льду - эдак 0.6, по солёному - 0.83, а дороге из крем-брюле назначил бы 0.4 :)

Ну у меня по клеточная игра, так что массив быстрее прочитать. Просто взяв позицию персонажа и по ним обратится к ячейкам в которых всё есть :)
Аватара пользователя
Sef
Старожил
 
Сообщения: 595
Зарегистрирован: 29 окт 2009, 13:24
  • ICQ

Re: Надо больше Tag

Сообщение Paul Siberdt 29 авг 2010, 20:20

Ага.. тогда это самое оптимальное решение.
Если массив не из объектов сделать, а из классов, что содержат эти объекты, можно вообще забыть про тэги и их поиск.

Синтаксис:
Используется javascript
class cCell {
  var model : Transform;
  var road : boolean;
  var ice : boolean;   
// всяко-разно
}
// всяко-разно
var cell : cCell[];
// всяко-разно
if(cell[current_position_index].road) {
  if(cell[current_position_index].ice){
}}
// всяко-разно
Аватара пользователя
Paul Siberdt
Адепт
 
Сообщения: 5317
Зарегистрирован: 20 июн 2009, 21:24
Откуда: Moscow, Russia
Skype: siberdt
  • Сайт

Re: Надо больше Tag

Сообщение Sef 29 авг 2010, 20:51

Да, возможно...
Аватара пользователя
Sef
Старожил
 
Сообщения: 595
Зарегистрирован: 29 окт 2009, 13:24
  • ICQ

Re: Надо больше Tag

Сообщение Zaicheg 30 авг 2010, 09:48

Можно ещё идентификаторы в имени объекта закладывать через суффиксы-префиксы и gameObject.name.Contains.
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец

Re: Надо больше Tag

Сообщение Neodrop 30 авг 2010, 09:51

Или навешивать монобехи-маркеры. Вариантов куча, в том и сила Юньки - нет одного решения для любой задачи. Всегда есть варианты.
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

След.

Вернуться в Вопросы разработчикам движка

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

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