Gerador de luz piscando de terror para Unity e Godot
Escolha uma predefinição ou mova os controles e veja a lâmpada. Quando estiver bom, copie o script para Unity ou Godot e anexe a uma luz.
Predefinições
Prévia
using UnityEngine;
public class FlickerLight : MonoBehaviour
{
public float baseIntensity = 1.2;
public float flickerAmount = 0.25;
public float speed = 6;
public float dropoutsPerSecond = 0.2;
public float dropoutSeconds = 0.1;
Light lamp; float seed; float offUntil;
void Awake() { lamp = GetComponent<Light>(); seed = Random.value * 100f; }
void Update()
{
if (Time.time < offUntil) { lamp.intensity = 0f; return; }
if (Random.value < dropoutsPerSecond * Time.deltaTime) offUntil = Time.time + dropoutSeconds;
float n = Mathf.PerlinNoise(seed, Time.time * speed);
lamp.intensity = Mathf.Max(0f, baseIntensity + (n - 0.5f) * 2f * flickerAmount);
}
}Como usar bem o flicker
O flicker com ruído parece orgânico, e apagões raros dão a sensação de defeito. Use poucas luzes piscando e mantenha a maioria estável, para o flicker significar algo.
Leia o guia completo: [iluminação de terror e flicker na Unity](/guides/horror-lighting-and-flicker-in-unity/).
Quando usar
Uma luz quebrada no corredor
Use ruído lento com apagões raros para que o jogador só perceba a luz quando ela morrer por um segundo.
Avisar do perigo
Acelere o piscar quando o monstro estiver perto; o jogador aprende a ler a luz como aviso.
Velas e fogo
Pouca força e ruído rápido sem apagões dão uma chama quente e viva, e não uma falha elétrica.
Vá além
Perguntas frequentes
Segue a mesma lógica, mas o ruído muda um pouco entre Unity, Godot e o navegador. Ajuste fino na engine.
Sim. Ele é gerado a partir das suas configurações e é seu para usar.
Mudar a intensidade de uma luz a cada frame é barato. O que custa são as sombras: limite as luzes piscando com sombra em tempo real a poucas por sala.
Flashes rápidos e de alto contraste podem ser. Mantenha a frequência baixa, evite clarões na tela inteira e ofereça uma opção para reduzir o piscar.


