Unity实时切换Skybox后,新skybox不能实时影响环境光反射的问题的解决方案

Unity实时切换Skybox后,新skybox不能实时影响环境光反射的问题的解决方案

前言

太好笑了最近真的是踩了很多坑,搜了半天看没人填坑我就过来填一下吧。最近在做的项目要求实时切换Skybox,目的是让SkyBox可以影响环境光反射,但是无论是更改全局skybox还是摄像机下skybox都无法实现该效果,查了unity的文档给出了在切换skybox后调用DynamicGI.UpdateEnvironment的方法刷新GI,事实上这种方法只是对之前GI的缺损部分的检测和刷新,并不能实时更改,于是作罢。

解决办法

我的解决办法很简单,既然实时环境光获取不到那我们就直接预渲染一个好了。
打开lightseting界面
Unity实时切换Skybox后,新skybox不能实时影响环境光反射的问题的解决方案
Environment Reflections 中Source 更改为Custom.
反选最下面的Auto Generate ,之后点击Generate lighting。
之后你会在scenes文件夹下发现新生成的环境光反射cubemap。和光照数据(暂不需要)
Unity实时切换Skybox后,新skybox不能实时影响环境光反射的问题的解决方案
后期在代码加载skybox的时候把该反射加载进去即可。

RenderSettings.customReflection = 获取到的环境光反射cubmap;