facebook twitter hatena line email

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

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
 
(同じ利用者による、間の6版が非表示)
行1: 行1:
==徐々にcubeboxを変更するSkyboxShader==
+
[[Unity/Shader/skybox/徐々に変更/色]]
公式の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にもある。
+
[[Unity/Shader/skybox/徐々に変更/cubebox]]
 
+
参考: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をドラッグして設定。
+
 
+
<pre>
+
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;
+
    }
+
}
+
</pre>
+
 
+
==オブジェクトが表示されない問題==
+
Shader内の、"ZTest Always"を消すとよい。
+

2022年12月7日 (水) 13:55時点における最新版

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

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