「Unity/Shader/skybox/徐々に変更」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→CubeBlendのShaderのDLについて) |
|||
行1: | 行1: | ||
+ | ==徐々にcubeboxを変更するSkyboxShader== | ||
公式のCubeBlend.shaderを使って行う | 公式のCubeBlend.shaderを使って行う | ||
+ | ===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にもある。 | ||
+ | |||
+ | 参考:https://bluebirdofoz.hatenablog.com/entry/2019/07/25/093410 | ||
+ | |||
#Shaderのdirを作成して、新規でShaderを作り、"Skybox_CubeBlendShader"にファイル名を変更して、CubeBuild.Shaderを貼り付け。コード内のhiddenをskyboxに変更。 | #Shaderのdirを作成して、新規でShaderを作り、"Skybox_CubeBlendShader"にファイル名を変更して、CubeBuild.Shaderを貼り付け。コード内のhiddenをskyboxに変更。 |
2022年12月7日 (水) 01:26時点における版
徐々にcubeboxを変更するSkyboxShader
公式のCubeBlend.shaderを使って行う
CubeBlendのShaderのDLについて
https://unity.com/releases/editor/archive のwindowsやmacの"Build in Shaders"からDL。builtin_shaders-2021.3.4f1/DefaultResourcesExtra/Cubemaps/CubeBlend.shaderにもある。
参考:https://bluebirdofoz.hatenablog.com/entry/2019/07/25/093410
- 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; } }
オブジェクトが表示されない問題
Shader内の、"ZTest Always"を消すとよい。