--- title: "Gráficos por script: hora, clima, luz, partículas e sondas" version: snapshot-2026-10-28 engineGeneration: astra-current language: C# status: source-reviewed reviewedAt: 2026-10-26 appRelease: "0.4.0-preview.20261028" runtimeVerified: false platformEvidence: [] url: https://astraengine.com.br/guia/scripts/graficos-por-script/ --- # Gráficos por script: hora, clima, luz, partículas e sondas Exemplos curtos em C# para mudar a hora do dia, o clima, a luz, o Volume, soltar partículas e recapturar uma sonda. > **Conferido na fonte e no computador** · APK 0.4.0 · fachadas conferidas na fonte do APK > Conferido contra a fachada C# do APK (tipos e membros um a um); a execução desta receita no aparelho ainda não foi registrada. Cada exemplo vai num objeto que tem o componente usado. Os nomes dos campos são os da fachada C# gerada a partir do Inspector. ## Acelerar o dia (Hora do dia) No objeto do Sol com a [TimeOfDay](/pt-br/snapshot-2026-10-28/api/astra-components-timeofday/): ```csharp [ComponentId("meujogo.dia-rapido")] public sealed class DiaRapido : Behavior { public override void Start() { if (Object.GetComponent() is { } hora) { hora.Hour = 6; // começa ao amanhecer hora.DayLengthMinutes = 4; // um dia inteiro em 4 minutos } } } ``` ## Trocar o clima (Clima) No objeto do [Weather](/pt-br/snapshot-2026-10-28/api/astra-components-weather/): ```csharp if (Object.GetComponent() is { } clima) { clima.Kind = Weather.KindOption.Tempestade; clima.Intensity = 0.9f; // a Transição do Clima suaviza a troca } ``` ## Piscar uma luz (Luz) ```csharp [ComponentId("meujogo.luz-piscando")] public sealed class LuzPiscando : Behavior { private float t; public override void Update(float seconds) { t += seconds; if (Object.GetComponent() is { } luz) luz.Intensity = t % 1 < 0.1f ? 0 : 3; // apaga 0,1 s a cada segundo } } ``` ## Pesar um Volume (Ambiente) O efeito precisa estar no perfil do Volume (override adicionado). Pelo [EnvironmentVolume](/pt-br/snapshot-2026-10-28/api/astra-components-environmentvolume/): ```csharp if (Object.GetComponent() is { } volume) volume.Weight = 1; // 0 não influencia, 1 aplica todo o perfil ``` ## Soltar partículas (Sistema de partículas) ```csharp if (Object.GetComponent() is { } fx) { fx.Emit(30); if (!fx.IsPlaying()) fx.Play(); } ``` ## Recapturar uma sonda (Sonda de reflexo) Com a sonda em **Tipo** Tempo real e **Atualização** Por script: ```csharp if (Object.GetComponent() is { } sonda) sonda.RenderProbe(); ``` O fim da recaptura ainda não é avisado ao script. ## Com os nomes da Unity Os mesmos recursos também têm a API com os nomes e as assinaturas da Unity (Volume.Profile, VolumeProfile.TryGet, TimeOfDay.Current com eventos, Material.SetFloat): veja [API gráfica com os nomes da Unity](/guia/scripts/api-grafica/).