facebook twitter hatena line email

Unity/Shader/skybox/徐々に変更/

提供: 初心者エンジニアの簡易メモ
移動: 案内検索

色が暗くなったり、明るくなったりするサンプル

Shaderを作成し、Skybox/Procedualを設定

using UnityEngine;

public class SkyboxColorScene : MonoBehaviour
{
    [SerializeField] Material skyboxMaterial;
    [SerializeField] bool orderFlag = true;
    [SerializeField] Color color;
    Material tmpSkyboxMaterial;
    void Start()
    {
        tmpSkyboxMaterial = Instantiate(skyboxMaterial); // skyboxMaterialのMaterialAssetの値が変化するのを防止(実行のたびにgitで差分が出ないように)
        RenderSettings.skybox = tmpSkyboxMaterial;
        // Skybox/Procedualを使う
        tmpSkyboxMaterial.SetColor("_SkyTint", Color.white);
    }
    void Update()
    {
        color = tmpSkyboxMaterial.GetColor("_SkyTint");
        Debug.Log("color.r=" + color.r);
        if (color.r > 1)
        {
            orderFlag = true;
        }
        else if (color.r < 0)
        {
            orderFlag = false;
        }
        if (orderFlag)
        {
            color -= new Color(0.01f, 0.01f, 0.01f);
        }
        else
        {
            color += new Color(0.01f, 0.01f, 0.01f);
        }
        tmpSkyboxMaterial.SetColor("_SkyTint", color);
    }
}

参考:https://adarapata.hatenablog.com/entry/2015/08/04/024143