facebook twitter hatena line email

「Unity/Shader/skybox/徐々に変更/色」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(色が暗くなったり、明るくなったりするサンプル)
 
(同じ利用者による、間の3版が非表示)
行9: 行9:
 
     [SerializeField] bool orderFlag = true;
 
     [SerializeField] bool orderFlag = true;
 
     [SerializeField] Color color;
 
     [SerializeField] Color color;
 +
    Material tmpSkyboxMaterial;
 
     void Start()
 
     void Start()
 
     {
 
     {
         RenderSettings.skybox = skyboxMaterial;
+
        tmpSkyboxMaterial = Instantiate(skyboxMaterial); // skyboxMaterialのMaterialAssetの値が変化するのを防止(実行のたびにgitで差分が出ないように)
 +
         RenderSettings.skybox = tmpSkyboxMaterial;
 
         // Skybox/Procedualを使う
 
         // Skybox/Procedualを使う
         skyboxMaterial.SetColor("_SkyTint", Color.white);
+
         tmpSkyboxMaterial.SetColor("_SkyTint", Color.white);
 
     }
 
     }
 
     void Update()
 
     void Update()
 
     {
 
     {
         color = skyboxMaterial.GetColor("_SkyTint");
+
         color = tmpSkyboxMaterial.GetColor("_SkyTint");
 
         Debug.Log("color.r=" + color.r);
 
         Debug.Log("color.r=" + color.r);
 
         if (color.r > 1)
 
         if (color.r > 1)
行35: 行37:
 
             color += new Color(0.01f, 0.01f, 0.01f);
 
             color += new Color(0.01f, 0.01f, 0.01f);
 
         }
 
         }
         skyboxMaterial.SetColor("_SkyTint", color);
+
         tmpSkyboxMaterial.SetColor("_SkyTint", color);
 
     }
 
     }
 
}
 
}
 
</pre>
 
</pre>
 +
 +
参考:https://adarapata.hatenablog.com/entry/2015/08/04/024143

2022年12月10日 (土) 02:20時点における最新版

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

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