「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 = | + | tmpSkyboxMaterial = Instantiate(skyboxMaterial); // skyboxMaterialのMaterialAssetの値が変化するのを防止(実行のたびにgitで差分が出ないように) |
| + | RenderSettings.skybox = tmpSkyboxMaterial; | ||
// Skybox/Procedualを使う | // Skybox/Procedualを使う | ||
| − | + | tmpSkyboxMaterial.SetColor("_SkyTint", Color.white); | |
} | } | ||
void Update() | void Update() | ||
{ | { | ||
| − | color = | + | 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); | ||
} | } | ||
| − | + | 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);
}
}
