Активация и деактивация объекта по нажатию кнопки

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

Активация и деактивация объекта по нажатию кнопки

Сообщение ilyaberbx 25 апр 2021, 18:27

Здравствуйте, мне нужно помочь с кодом и указать на ошибку
В общем то, скрипт должен работать так:
По нажатию кнопки А, объект появляется на какое-то короткое время, после пропадает.
Еще в довесок к этому должен быть кулдаун.
Вот что написал я, но оно чет не пашет.
(timer это по моей логике кул даун)
Синтаксис:
Используется csharp
 void Update()
    {
        if (timer <= 0)
        {
            if (Input.GetKeyDown(KeyCode.A))
            {        
                for(float attacktime = 1f; attacktime >= 0; attacktime -= 0.01f)
                {
                    gameObject.SetActive(true);
                }
                   
                   


                timer = timeBTWattack;
            }

           
        }
        else
        {
            timer = timer - 0.01f;
            gameObject.SetActive(true);
         
        }
    }
ilyaberbx
UNец
 
Сообщения: 2
Зарегистрирован: 25 апр 2021, 17:21

Re: Активация и деактивация объекта по нажатию кнопки

Сообщение seaman 25 апр 2021, 19:13

И где выключение ("пропадание" объекта).
А цикл выполнится за один кадр, т.е. мгновенно.
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Активация и деактивация объекта по нажатию кнопки

Сообщение ilyaberbx 25 апр 2021, 19:24

seaman писал(а):И где выключение ("пропадание" объекта).
А цикл выполнится за один кадр, т.е. мгновенно.


с выключением я уже разобрался, как сделать чтобы цикл выполнялся не за один кадр?
то есть, чтобы вот эта переменная attacktime работала заметно
ilyaberbx
UNец
 
Сообщения: 2
Зарегистрирован: 25 апр 2021, 17:21

Re: Активация и деактивация объекта по нажатию кнопки

Сообщение TeslaGan 26 апр 2021, 11:35

ilyaberbx писал(а):
seaman писал(а):И где выключение ("пропадание" объекта).
А цикл выполнится за один кадр, т.е. мгновенно.


с выключением я уже разобрался, как сделать чтобы цикл выполнялся не за один кадр?
то есть, чтобы вот эта переменная attacktime работала заметно

убрать цикл и растянуть выполнение на несколько кадров. вынести цикл в короутину. убрать цикл и добавить задержку. есть много решений, и какое вам надо - не понятно. т.к. не понятно даже как ваша прога должна работать. выключив объект, вы выключите и скрипт, а это перестанет вызывать апдейт... обычно таймер, включения/выключения/удаления/добавления/чего-то еще похожжего выносят в отдельный контролер, который и будет менять состояние объекта.
TeslaGan
UNITрон
 
Сообщения: 315
Зарегистрирован: 01 авг 2015, 18:00


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

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

Сейчас этот форум просматривают: Yandex [Bot] и гости: 8