UnityHDRP,动态修改天空盒
想实现动态更换HDRP的天空盒,发现在使用新渲染管线的人还是很少,自能自己动手搞了。(如果有更好的方法请告知,谢谢!)
老渲染通道和高清渲染通道对天空盒的要求
在对天空盒要求上,老渲染管线和新渲染管线有很大区别,目前我就发现新的渲染管线只能用这种类型天空盒,
官网上是这么说的“高清渲染管线不支持skybox材质,而是包含多个天空生成解决方案。”
替换天空盒
首先在Hierarchy面板上创建一个Sky and Fog Volume,在Inspector面板里点击Profile new两个对象
在这两个Profile对象里添加天空盒材质,我实现的是百天与黑夜切换,Profile对象里还有其他一些好玩的对象,我就不详细说了,自己研究。
接下来就是代码来动态修改天空盒了。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Rendering;
using UnityEngine.Rendering.HighDefinition;
using UnityEngine.UI;
public class setSkyBox : MonoBehaviour
{
public Volume SkyBox;
public VolumeProfile Day;
public VolumeProfile night;
void Start()
{
}
void Update()
{
}
public void ToNightOnClick()
{
SkyBox.profile = night;
}
public void ToDayOnClick()
{
SkyBox.profile = Day;
}
}