Четверг, 28 Марта 2024, 16:25

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Выключить все кроме избранного
Выключить все кроме избранного
MegaMan11Дата: Воскресенье, 20 Декабря 2020, 23:41 | Сообщение # 1
частый гость
Сейчас нет на сайте
Привет Всем!! Банально нужно выключить все светильники кроме одного который будет светить; Трудность в том, что нельзя все сразу выключить, а потом включить тот который нужно чтоб светил, потому что сразу может послано в другой скрипт что он изменился ( а этого делать нельзя) Есть какое-то более элегантное решение чем 3 способ ??
Код
public class TestLampser : MonoBehaviour
{

    public int hours;

    public bool sun;
    public bool lune;
    public bool lamp;
    public bool fonar;

  
    void Update()
    {
        /// первый способ  не подходит выключать приодится светящийся
        sun = false;
        lune = false;
        lamp = false;
        fonar = false;

        switch (hours)
        {
            case 1:
                sun = true;
                break;
            case 2:
                lune = true;
                break;
            case 3:
                lamp = true;
                break;
            case 4:
                fonar = true;
                break;
            default:
                break;
        }
        ///  второй  способне подходит выключать приодится светящийся
        switch (hours)
        {
            case 1:
                Lighting();      sun = true;
                break;
            case 2:
                Lighting();    lune = true;
                break;
            case 3:
                Lighting();    lamp = true;
                break;
            case 4:
                Lighting();    fonar = true;
                break;
            default:
                break;
        }
        /// первый третий я не думаю что это элегантный способ
        switch (hours)
        {
            case 1:
                Lighting1(true);  
                break;
            case 2:
                Lighting1(false, true);
                break;
            case 3:
                Lighting1(false, false, true);
                break;
            case 4:
                Lighting1(false, false, false, true);
                break;
            default:
                break;
        }
     

    }

    void Lighting()
    {
        sun = false;
        lune = false;
        lamp = false;
        fonar = false;
    }

    void Lighting1(bool _sun = false, bool _lune = false, bool _lamp = false, bool _fonar = false)
    {
        sun = _sun;
        lune = _lune;
        lamp = _lamp;
        fonar = _fonar;
    }
freeprogrammerДата: Понедельник, 21 Декабря 2020, 11:08 | Сообщение # 2
участник
Сейчас нет на сайте
Прочитай про систему событий - это будет элегантно

Medieval Checkers , Aeronauts, Funny Animals, KickItUp Soccer Brazil, Dragon Fire & Fury
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Выключить все кроме избранного
  • Страница 1 из 1
  • 1
Поиск:

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