Basic Unity Course: Sky

Hello everyone! Today we will take a detailed look at how to create skies in Unity. The sky is one of the elements that greatly impacts the atmosphere of a game, and its implementation can change the overall feel of the game. In this article, we will explain various ways to set up and utilize the sky in Unity.

1. Understanding the Importance of the Sky

The sky is a crucial element that composes the background of the game. Properly setting up the sky can significantly enhance the theme and atmosphere of the game. For example, a clear blue sky can evoke positive emotions, whereas a dark, cloudy sky can create tension or anxiety. Therefore, when designing the sky, it’s important to consider the overall emotions and messages of the game.

2. Setting Up the Sky in Unity

Unity offers various ways to set up the sky. By default, you can use Unity’s Skybox, which allows for everything from simple effects to complex customizations.

2.1 Using Skybox

The Skybox is a cube map used in Unity to represent the sky. It requires five cubemap textures to implement a 360-degree sky. To use a Skybox, follow these steps:

  1. In the Unity Editor, click Window > Rendering > Lighting.
  2. In the Lighting panel, go to the Environment section and select Skybox Material.
  3. Select the desired Skybox or drag your custom Skybox into the Material slot.

Unity provides several basic Skybox textures, so you can utilize those.

2.2 Setting Sky Color and Gradient

You can also represent the sky with simple colors or gradients instead of a Skybox. This method can yield simple yet effective results. To set the sky color:

  1. Select GameObject > 3D Object > Quad in the Scene view to create a mesh that represents the sky.
  2. Create a new Material for the Quad, and set the Shader to Unlit or Unlit/Texture.
  3. To create a gradient, edit a Texture or download a gradient texture from the Unity Asset Store.

3. Adding Animation Effects to the Sky

You can add animation effects to the sky for subtle changes. For example, if you want to create the effect of clouds moving or the sun rising, you can use the following methods.

3.1 Creating Realistic Cloud Animation

Adding moving clouds to the sky enhances the realism of the game. To do this, follow these steps:

  1. Create a cloud object using a cloud texture or particle system.
  2. Add an Animator to the cloud object and create an animation clip that moves the cloud in a specific direction.
  3. Loop this animation continuously to add realism.

3.2 Setting the Sun’s Movement

Use a Directional Light to represent the sun. Write a script to adjust the sun’s direction and angle according to the flow of the day. A simple C# script example is as follows:


    using UnityEngine;

    public class SunMovement : MonoBehaviour
    {
        public float speed = 1.0f;
        
        void Update()
        {
            transform.Rotate(Vector3.right, speed * Time.deltaTime);
        }
    }
    

4. Setting the Sky in HDRP and URP

Unity offers the High Definition Render Pipeline (HDRP) and Universal Render Pipeline (URP) to support advanced graphics. The methods of setting the sky may vary slightly depending on each pipeline.

4.1 Setting the Sky in HDRP

In HDRP, you can achieve a more realistic sky through the Visual Environment settings. Follow these steps:

  1. Apply the HDRP Asset to your project.
  2. In the Lighting panel, select Environment Lighting and set Sky Type to HDRI Sky.
  3. Use differentiated HDRI textures to present a more diverse sky.

4.2 Setting the Sky in URP

In URP, you can implement the sky using Shader Graph. This allows for parameter adjustments and customization. You can define and combine gradients, clouds, and sun effects to realize various skies through Shader Graph.

5. Sky and Weather Systems

In addition to sky setup, implementing a weather system can greatly enhance the immersion of the game. This allows for a more diverse experience of the environment.

5.1 Implementing Weather Changes

By creating a weather system, you can represent various climates. For example, if you want to create rainy weather, you will need the following elements:

  1. Use a rain texture and implement it with a particle system to set up the rain effect.
  2. Change the sky color to represent cloudy weather.
  3. Use C# scripts to automatically switch between weather changes periodically or based on specific events.

6. Optimization and Tips

When implementing sky and weather effects, performance considerations are crucial. Here are a few tips for optimization.

  1. Optimizing Particle Systems: Minimize unnecessary parameters and experiment for optimal settings.
  2. Background Texture Size: While using high-resolution textures is good, keep an appropriate level to manage VRAM usage.
  3. LOD (Level of Detail): Improve performance for the sky and distant backgrounds through the LOD system.

Conclusion

Setting the sky is a deep element beyond just a simple background. Utilize the various features provided by Unity to unleash your creativity and implement unique skies. Also, don’t forget to enhance the immersion of your game through a weather system.

I hope today’s tutorial has been helpful for your Unity development. Add a beautiful sky to your game and enjoy the process!