Kaira Digital ArtsKaira Digital Arts
Pages (23)Easy Weather Manager

Easy Weather Manager

Last updated 6 October 2026

EasyWeatherManager is the root component of the EasyWeather prefab. It finds and initializes the modules, updates them every frame (in Edit Mode too, so the Scene view previews the sky), and creates the audio sources if they are missing. Use one manager per scene.

The inspector has the sections System Settings, Module Overview, Module References and Audio Sources.

Settings

SettingDescription
autoUpdateUpdates the system every frame. When off, nothing updates and you call the modules yourself
verboseLoggingWrites step by step messages to the console: day rollovers, weather scheduling, cloud generation. Off by default. Warnings and errors always show
createDefaultVolumeWhen the scene has no global post processing Volume, the manager creates one (a child named Global Volume). A scene that already has a global Volume is left exactly as it is
defaultVolumeProfileThe profile for that Volume. Weather presets blend their own profiles on top of it
timeModule, celestialModule, cloudModule, detailModule, weatherEffectsModule, eventsModuleReferences to the six modules
weatherAudioSource, windAudioSource, thunderAudioSource, ambientAudioSourcePlayed by the running weather preset
ambienceDayAudioSource, ambienceNightAudioSource, ambienceWindAudioSourceClear weather ambience, crossfaded by time of day. See Weather Effects Module

Public API

MemberDescription
static EasyWeatherManager instanceThe enabled manager (the most recently enabled one if there are several), or null
float GetCurrentTime()Current hour, 0 to 24
float GetNormalizedTime()Current time as 0 to 1
bool IsDayTime(), bool IsNightTime()Shortcuts to the Time Module
AddTimeModule(), AddCelestialModule(), AddCloudModule(), AddDetailModule(), AddWeatherEffectsModule(), AddEventsModule()Create a missing module as a child object
static void LogVerbose(string message)Logs only while verboseLogging is on
csharp
using KairaDigitalArts;

var weather = EasyWeatherManager.instance;
if (weather != null)
{
    Debug.Log("Hour: " + weather.GetCurrentTime());
}

Still stuck?

Send us your Unity version, render pipeline and a screenshot of the problem.

Contact support