Unity Skybox 컴포넌트 가이드

개요

Skybox 컴포넌트는 Unity에서 게임 오브젝트의 카메라가 그리는 스카이박스를 제어하는 데 사용됩니다. 이 컴포넌트를 통해 씬 내 여러 카메라가 서로 다른 스카이박스를 렌더링할 수 있습니다.

렌더링 파이프라인 호환성

Skybox 컴포넌트는 다음과 같은 렌더링 파이프라인에서 호환됩니다:

파이프라인 Built-in URP HDRP
Skybox 컴포넌트 지원 여부 지원 지원 미지원
주의: HDRP는 이 컴포넌트를 지원하지 않지만, 다양한 스카이 생성 솔루션을 제공합니다.

프로퍼티 설명

Skybox 컴포넌트의 주요 프로퍼티는 다음과 같습니다:

프로퍼티 설명
Custom Skybox 카메라가 그리는 스카이박스입니다. 이 프로퍼티에 할당되는 머티리얼은 반드시 스카이박스 셰이더를 사용해야 합니다.

활용 예제

기본 Skybox 설정

using UnityEngine;

public class BasicSkybox : MonoBehaviour
{
    public Material skyboxMaterial;

    void Start()
    {
        RenderSettings.skybox = skyboxMaterial;
    }
}

위 예제는 게임이 시작될 때 기본 스카이박스를 설정합니다.

카메라 별 Skybox 변경

using UnityEngine;

public class MultiCameraSkybox : MonoBehaviour
{
    public Camera camera1;
    public Camera camera2;
    public Material skybox1;
    public Material skybox2;

    void Start()
    {
        camera1.clearFlags = CameraClearFlags.Skybox;
        camera1.GetComponent<Skybox>().material = skybox1;

        camera2.clearFlags = CameraClearFlags.Skybox;
        camera2.GetComponent<Skybox>().material = skybox2;
    }
}

이 코드는 두 개의 카메라가 각각 다른 스카이박스를 보여줄 수 있게 설정합니다.

동적 Skybox 변경

using UnityEngine;

public class DynamicSkybox : MonoBehaviour
{
    public Material[] skyboxes;
    private int currentSkyboxIndex = 0;

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            currentSkyboxIndex = (currentSkyboxIndex + 1) % skyboxes.Length;
            RenderSettings.skybox = skyboxes[currentSkyboxIndex];
        }
    }
}

위 코드는 스페이스 키를 누를 때마다 스카이박스가 변경되도록 설정합니다.

결론

Skybox 컴포넌트는 다양한 게임 내 환경을 만들기 위해 매우 유용한 도구입니다. 스카이박스를 적절히 활용하여 더욱 몰입감 있는 게임을 만들어 보세요.