Пятница, 19 Апреля 2024, 02:40

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Как поменять цвет не затрагивая текущий Альфа цвет
Как поменять цвет не затрагивая текущий Альфа цвет
OrcanДата: Воскресенье, 29 Октября 2017, 19:29 | Сообщение # 1
почетный гость
Сейчас нет на сайте
Привет Всем! Нужно что бы все спрайты на карте поменяли цвет, но те которые имеют прозрачный фон так и оставались прозрачными как это можно сделать?
Вот пример кода , при котором к сожалению цвет меняется на непрозрачный и этот элемент уже становится видимым.
Код
  public void Svetlo(){
      for (int i = 0; i < ZatemnitbObj.Length; i++)
{
        if(ZatemnitbObj[i] != null){
    ZatemnitbObj[i].GetComponent<SpriteRenderer>().color = new  Color(255,255,255);}
         


VostruginДата: Воскресенье, 29 Октября 2017, 19:34 | Сообщение # 2
постоянный участник
Сейчас нет на сайте
Юнити под рукой сейчас нет. Но попробуй:
Код
public void LightAll()
{
for (int i = 0; i < objects.Length; i++)
{
    if(objects[i] != null)
    {
      var renderer = objects[i].GetComponent<SpriteRenderer>();
      if(renderer != null)
      {
       var alpha = renderer.color.a;
       renderer.color = new  Color(255,255,255, alpha);
      }
    }
}
}






Сообщение отредактировал Vostrugin - Воскресенье, 29 Октября 2017, 19:36
OrcanДата: Воскресенье, 29 Октября 2017, 20:41 | Сообщение # 3
почетный гость
Сейчас нет на сайте
спасибо получается

drcrackДата: Воскресенье, 29 Октября 2017, 20:47 | Сообщение # 4
старожил
Сейчас нет на сайте
Решарпер с дефолтными настройками предлагает уменьшать вложенность с помощью continue, и я с ним согласен:

Код
for (var i = 0; i < objects.Length; i++) {

   if (objects[i] == null) continue;

   var renderer = objects[i].GetComponent<SpriteRenderer>();

   if (renderer == null) continue;

   renderer.color = new  Color(255,255,255, renderer.color.a);

  }

Код понятней читается, когда нету лишних {}


Сообщение отредактировал drcrack - Воскресенье, 29 Октября 2017, 20:49
VostruginДата: Понедельник, 30 Октября 2017, 09:19 | Сообщение # 5
постоянный участник
Сейчас нет на сайте
drcrack, я тоже с ним согласен :)
Переучиваю себя последнее время на такой стиль, чтобы избегать вложенности. Но пока местами пробивается старая привычка :)




Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Как поменять цвет не затрагивая текущий Альфа цвет
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг