「Unity/Shader/skybox/徐々に変更」の版間の差分
提供: 初心者エンジニアの簡易メモ
| 行1: | 行1: | ||
公式のCubeBlend.shaderを使って行う | 公式のCubeBlend.shaderを使って行う | ||
| − | #Shaderのdirを作成して、新規でShaderを作り、"Skybox_CubeBlendShader" | + | #Shaderのdirを作成して、新規でShaderを作り、"Skybox_CubeBlendShader"にファイル名を変更して、CubeBuild.Shaderを貼り付け。コード内のhiddenをskyboxに変更。 |
| − | + | ||
#Materialを新規作成して、InspectorのShaderを、Skybox/CubeBlendに変更する。 | #Materialを新規作成して、InspectorのShaderを、Skybox/CubeBlendに変更する。 | ||
#2箇所のskyboxにcubemapをドラッグして設定。 | #2箇所のskyboxにcubemapをドラッグして設定。 | ||
| 行47: | 行46: | ||
</pre> | </pre> | ||
| − | + | ==CubeBlendのShaderのDLについて== | |
| + | 2種類ある。 | ||
| + | https://github.com/TwoTailsGames/Unity-Built-in-Shaders/blob/master/DefaultResourcesExtra/Cubemaps/CubeBlend.shader | ||
| + | |||
| + | https://unity.com/releases/editor/archiveのwindowsやmacの"Build in Shaders"からDL。builtin_shaders-2021.3.4f1/DefaultResourcesExtra/Cubemaps/CubeBlend.shaderにもある。 | ||
2022年12月6日 (火) 21:41時点における版
公式のCubeBlend.shaderを使って行う
- Shaderのdirを作成して、新規でShaderを作り、"Skybox_CubeBlendShader"にファイル名を変更して、CubeBuild.Shaderを貼り付け。コード内のhiddenをskyboxに変更。
- Materialを新規作成して、InspectorのShaderを、Skybox/CubeBlendに変更する。
- 2箇所のskyboxにcubemapをドラッグして設定。
using System.Collections;
using UnityEngine;
public class SkyboxCubeBlend : MonoBehaviour
{
[SerializeField] Material _skyMat = default;
[SerializeField, Range(0f, 1f)] float _rate = 0.05f;
Coroutine _coroutine = default;
Material _runtimeMaterial = default;
public void Start()
{
FadeSkybox();
}
public void FadeSkybox()
{
if (_coroutine == null)
{
_runtimeMaterial = Instantiate(_skyMat);
RenderSettings.skybox = _runtimeMaterial;
_coroutine = StartCoroutine(FadeSkyboxRoutine(_rate));
}
}
IEnumerator FadeSkyboxRoutine(float rate)
{
float blend = 0f;
while (blend < 1)
{
_runtimeMaterial.SetFloat("_value", blend);
blend += rate;
Debug.Log("_value=" + blend);
yield return null;
}
_runtimeMaterial.SetFloat("_value", 1);
_coroutine = null;
}
}
CubeBlendのShaderのDLについて
https://unity.com/releases/editor/archiveのwindowsやmacの"Build in Shaders"からDL。builtin_shaders-2021.3.4f1/DefaultResourcesExtra/Cubemaps/CubeBlend.shaderにもある。
