SunLight – Location based Time of Day

SunLight calculates the light color and orientation of a directional light source based on geographical location and time of day to create a realistic sun light source.
Works with Unity’s dynamic skybox introduced in Unity 5. Simple to use ; just drag it into your scene and let SunLight handle the directional light.

SunLight is not only useful for games. You could use SunLight for architectural applications and urban planning purposes. As a quick meaningful tool in Unity, when accuracy does not have to meet scientific standards. For example by using it for shadow simulations.

SunLight creates two directional lights, one to illuminate the scene and another one is used to trigger Unity’s Skybox only (layer mask set to nothing). This is necessary to avoid unwanted directional illumination from below the horizon in twilight conditions.

Manual / Script Reference

HDRP & URP: Out of the box SunLight works with the Built-in Render Pipeline. Until it is officially implemented, please visit the forum post to find out how easy it is to use SunLight with URP and HDRP and watch this video.

Usage:

Drag the prefab into the scene and set location and time in inspector.

– Chose a location from 10 presets or manually set latitude and longitude.
– Choose whether to let SunLight handle the progress of time or control it in your script.
– If you wish you can manually override the azimuth (horizontal rotation) of the sun via inspector or in your own script.

Users tested SunLight successfully with VR.

SunLight can be useful for augmented reality too. You could use it to match lighting of 3D objects to the angle of the real world sun for outdoor AR scenes. Important: To do this, you must determine a stable north direction to pass it to SunLight, which must have an offset corresponding to the instantaneous rotation of the AR project. Determining this north direction can be a really difficult task if the hardware sensors are inaccurate and operate unpredictably. I cannot give any guidance on how to implement this solidly.


New in 1.1: Added the option to set a custom north direction.

New in 1.2: – Unity 5.5. and above: Uses the new RenderSettings.sun to set the sun in light settings. – Dropped refraction from calculation when sun is close to horizon to avoid a visual issue (which occurred for one frame only)

Works with Unity's built-in procedural skybox, making it rock solid and 100% compatible. Works perfectly on mobile.