timer para desligar luzes

Por: JMDesign  

Em: 27/08/2025 19:45

André, como faço um timer com bp para desligar as luzes depois de um tempo?
Att: João Maciel.
Oi JMDesign, tudo bem?
 
Estes dias eu fiz um exemplo para outro aluno que tem um Timer, é o mesmo Timer que sempre uso nestas situações.
 
O exemplo é de uma torneira que deve ficar aberta por alguns segundos e fechar sozinha, vai funcionar exatamente igual para uma luz ou qualquer outra coisa.
 
Você precisa guardar o Delta Seconds do Event Tick em alguma variável como mostra a parte superior esquerda da imagem.
Depois, você vai somar o valor do Delta Seconds em outra variável e guardar o resultado nela mesma, no meu caso usei a variável Tempo, porque assim o tempo vai aumentando aos poucos na variável Tempo.
 
O Delta Seconds solta o valor de uma fração de segundo a todo momento no Event Tick, então, se você for acumulando este valor numa variável, depois que passar 1 segundo do tempo no mundo real, essa variável vai ter o valor de 1, se ficar somando o Delta Seconds por 2 segundos, no final a variável tempo terá o valor de 2 e assim vai.
 
Portanto, é só você verificar o valor da variável Tempo logo em seguida, usando o Node Greater (>), para ver se o valor é maior do que o valor que deseja, no meu caso usei a variável Tempo Máximo para definir isso.
Dai é só conectar o resultado num Branch para fazer o que quiser no pino do True quando o tempo for maior e fazer o que quiser no pino do False quando o tempo for menor.
 
No meu caso eu chamei o evento que fecha a torneira, você vai chamar o evento que desliga a luz.
 
Entretanto, só vai querer acionar o Timer depois que a luz estiver ligada, então, eu criei a variável Boolean com o nome de Aberta e conectei ela num Branch logo no início, antes do Timer, para saber se a torneira está aberta, no seu caso será se a luz está ligada.
 
Sendo assim, para dar certo precisa desligar a variável Aberta no final, depois que chama o evento para fechar a torneira, porque ele precisa saber que desligou para ligar direito na próxima vez que clicar.
Também precisa zerar o tempo na variável Tempo, para poder começar a contar a partir do zero na próxima vez.
 
Veja que criei o Evento On Clicked no objeto da torneira, logo abaixo do Event Tick, para poder acionar a torneira quando clicar, no seu caso será o interruptor, mas ele também precisa verificar se a torneira está aberta ou fechada para saber o que fazer, chamando o evento para abrir ou o evento para fechar a torneira, no seu caso serão os eventos para ligar e desligar a luz.

Então, como ele também define quando a luz está ligada e desligada, tem que configurar a variável Aberta corretamente depois que chamar cada evento de fechar e abrir a torneira, que no seu caso será ligar e desligar a luz, e no caso do evento para fechar a torneira, também tem que zerar o valor da variável Tempo por segurança.
 
No meu caso eu usei a Timeline para simplificar animação da rotação da válvula da torneira, mas você não vai precisar disso, apenas vai arrastar a luz que adicionou no painel Components do Blueprint, puxar o pino dela e pegar o Node Set Intensity para definir a intensidade.
Cria um Custom Event com o nome Liga_Luz e coloca o valor que desejar no Set Intensity, depois, cria outro Custom Event com o nome Desliga_Luz e coloca zero no Set Intensity, só isso.
 
Qualquer dúvida em algum pronto é só falar que eu explico melhor.
 
Abração e tudo de bom.
 
André Vieira
 
valeu deu certo
Att: João Maciel.

Faça o login para poder comentar

Informações da Comunidade

Total de mensagens publicadas pelos membros da comunidade: 717047.

Total de membros registrados: 143032

Últimos membros registrados: LeslieCMerriman, KeepsTRT335, CHERIF, SaraaahC, AiraBreeze3445, AiraBreeze35, Kenirous99, jcastilhos.

Usuário(s) on-line na última hora: 560

Legenda: Administrador, Especial, Moderador, Parceiro .

3D1 © Três D1 © 1999-2026. Todos direitos reservados.