Про GUI.DrawTexture, как менять цвет текстуры/материала

Программирование на Юнити.

Про GUI.DrawTexture, как менять цвет текстуры/материала

Сообщение Nolex 19 окт 2011, 00:41

Хочу сделать индикатор дамага для тачки через GUI.DrawTexture или Graphics.DrawTexture.

Изначально у меня есть N-частей машинки покрашенные в белый. Что значит, если я в Main Color ставлю красный цвет, то эта часть перекраситься в красный и т д.
Это можно сделать при помощи Graphics.DrawTexture(myRECT, myTEXTURE, myMATERIAL);
Но как уже известно, Graphics стал неюзабельным, т-к недавно был обнаружен серьезный баг. Я его описал в теме viewtopic.php?f=18&t=5098

Меня интересует есть ли еще какой-то аналог GUI.DrawTexture, но только с привязкой к материалу?
Буду рад свежим идеям!

Заранее спасибо.

На крайняк буду выводить через GUI Texture(GO).
У вас нет доступа для просмотра вложений в этом сообщении.
Разработка игр в студии Brinemedia .
Аватара пользователя
Nolex
UNIверсал
 
Сообщения: 483
Зарегистрирован: 17 окт 2010, 12:26
Откуда: Украина
Skype: exlumen
  • Сайт
  • ICQ

Re: Про GUI.DrawTexture, как менять цвет текстуры/материала

Сообщение artk 19 окт 2011, 01:45

GUI.color = Color.red; Не знаю будет ли работать с DrawTexture, но с Label работает.
Аватара пользователя
artk
Старожил
 
Сообщения: 749
Зарегистрирован: 22 май 2011, 12:22

Re: Про GUI.DrawTexture, как менять цвет текстуры/материала

Сообщение gnoblin 19 окт 2011, 08:06

GUI.Label()+GUI.Color() или GUITexture с материалом или мешик с материалом
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: Про GUI.DrawTexture, как менять цвет текстуры/материала

Сообщение Nolex 19 окт 2011, 22:42

gnoblin писал(а):GUI.Label()+GUI.Color() или GUITexture с материалом или мешик с материалом

Ага, спасибо! Отлично, так и сделал.


Синтаксис:
Используется csharp
                Color lastGuiColor = GUI.contentColor;

                GUI.contentColor = Color.yellow;

                GUI.Label(new Rect(111, 130, damages_part[0].width, damages_part[0].height), damages_part[0]);

                GUI.contentColor = Color.red;

                GUI.Label(new Rect(211, 130, damages_part[1].width, damages_part[1].height), damages_part[1]);

                GUI.contentColor = lastGuiColor;
 


А если мне нужно чтоб мышкой можно было выделить нужную часть? как это сделать?
Проблема в том что Rect прямоугольные, и myRect.Contains(Event.current.mousePosition) не покатит, т-к ректы соседних частей будут взаимопересекаться?
Как это лучше сделать?
У вас нет доступа для просмотра вложений в этом сообщении.
Разработка игр в студии Brinemedia .
Аватара пользователя
Nolex
UNIверсал
 
Сообщения: 483
Зарегистрирован: 17 окт 2010, 12:26
Откуда: Украина
Skype: exlumen
  • Сайт
  • ICQ

Re: Про GUI.DrawTexture, как менять цвет текстуры/материала

Сообщение gnoblin 19 окт 2011, 22:46

проверять сначала рект, потом альфу пикселя текстуры под мышкой
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: Про GUI.DrawTexture, как менять цвет текстуры/материала

Сообщение Nolex 19 окт 2011, 23:42

gnoblin писал(а):проверять сначала рект, потом альфу пикселя текстуры под мышкой

Ага, несколько вопросов:
А как брать пикселя текстуры под мышкой тут лучше? Через myTexture[].GetPixel(x,y); ?
Честно говоря, не совсем понял систему. Там еще усложняется все тем что ректы соседних текстур находят друг на друга.

Прикрепил скрин. Вот там красная область под вопросом. В той области по сути лежит две текстуры. Как в этом случае проверять альфу пикселя текстуры под мышкой? Тут даже скорее надо проверять альфу двух текстур и смотреть где Color.a = 1.
У вас нет доступа для просмотра вложений в этом сообщении.
Последний раз редактировалось Nolex 20 окт 2011, 16:59, всего редактировалось 1 раз.
Разработка игр в студии Brinemedia .
Аватара пользователя
Nolex
UNIверсал
 
Сообщения: 483
Зарегистрирован: 17 окт 2010, 12:26
Откуда: Украина
Skype: exlumen
  • Сайт
  • ICQ

Re: Про GUI.DrawTexture, как менять цвет текстуры/материала

Сообщение Nolex 20 окт 2011, 22:39

ап! что-то тему заглючило
Разработка игр в студии Brinemedia .
Аватара пользователя
Nolex
UNIверсал
 
Сообщения: 483
Зарегистрирован: 17 окт 2010, 12:26
Откуда: Украина
Skype: exlumen
  • Сайт
  • ICQ

Re: Про GUI.DrawTexture, как менять цвет текстуры/материала

Сообщение gnoblin 20 окт 2011, 22:56

тогда просто альфу под курсором через GetPixel()
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт


Вернуться в Скрипты

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

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


cron