48 lines
1.3 KiB
C#
48 lines
1.3 KiB
C#
using UnityEngine;
|
|
|
|
namespace AllIn13DShader
|
|
{
|
|
public class SkyController : MonoBehaviour
|
|
{
|
|
[SerializeField] private Material[] skyMaterials;
|
|
[SerializeField] private int firstSkyIndex = 0;
|
|
[SerializeField] private InputHandler skyChangeInputHandler;
|
|
|
|
private int currentSkyIndex;
|
|
|
|
public void Init()
|
|
{
|
|
currentSkyIndex = firstSkyIndex;
|
|
|
|
RenderSettings.defaultReflectionMode = UnityEngine.Rendering.DefaultReflectionMode.Skybox;
|
|
RenderSettings.skybox = skyMaterials[currentSkyIndex];
|
|
}
|
|
|
|
public void NextSky()
|
|
{
|
|
currentSkyIndex++;
|
|
if(currentSkyIndex >= skyMaterials.Length)
|
|
{
|
|
currentSkyIndex = 0;
|
|
}
|
|
|
|
// Directly set the skybox to the new material
|
|
RenderSettings.skybox = skyMaterials[currentSkyIndex];
|
|
DynamicGI.UpdateEnvironment();
|
|
}
|
|
|
|
public void DemoChanged(DemoElementData demoElementData)
|
|
{
|
|
if(demoElementData.skyboxEnabled)
|
|
{
|
|
RenderSettings.skybox = skyMaterials[currentSkyIndex];
|
|
}
|
|
else
|
|
{
|
|
RenderSettings.skybox = null;
|
|
}
|
|
|
|
DynamicGI.UpdateEnvironment();
|
|
}
|
|
}
|
|
} |