【Unity】夕方の空と夜空を表現する方法

Unity

はじめに

SkyboxとSkyboxProceduralとDirectionalLightを利用している前提のはなしになります。

ご注意ください。

Unityでは、DirectionalLightの向きに応じて、SkyboxProceduralが太陽の向きを計算して空の色を変えてくれます。

手動で空の色をかえてみる

Directional Lightを指定した状態で、InspectorのTransformのRotationを変更すると、空の色が変わります。

スクリプトから太陽を移転させる

スクリプトから太陽を回転させる場合は、ローカル座標を意識する必要があります。

DirectionalLightはローカル座標のZ方向に光を照射していますので、Y軸を中心に反時計回りをさせれば、実際の太陽の動きと同じように回ってくれそうです。

スクリプトを作成し、DirectionalLightにアタッチしましょう。

下記ソースコードで回転が実装できます。



using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class RoundScript : MonoBehaviour
{
    void Update()
    {
        // Y軸を中心に1秒につき-12度回転する
        transform.Rotate(new Vector3(0, -12) * Time.deltaTime);
    }
}

以上です。

コメント

タイトルとURLをコピーしました