您最多选择25个主题
主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
58 行
1.7 KiB
58 行
1.7 KiB
using UnityEngine.Rendering;
|
|
using System;
|
|
|
|
namespace UnityEngine.Experimental.Rendering.HDPipeline
|
|
{
|
|
internal class SkyUpdateContext
|
|
{
|
|
|
|
SkySettings m_SkySettings;
|
|
SkyRenderer m_Renderer;
|
|
|
|
public int skyParametersHash = -1;
|
|
public float currentUpdateTime = 0.0f;
|
|
public int updatedFramesRequired = 1; // The first frame after the scene load is currently not rendered correctly
|
|
|
|
public SkySettings skySettings
|
|
{
|
|
get { return m_SkySettings; }
|
|
set
|
|
{
|
|
if (m_SkySettings == value)
|
|
return;
|
|
|
|
if (m_Renderer != null)
|
|
{
|
|
m_Renderer.Cleanup();
|
|
m_Renderer = null;
|
|
}
|
|
|
|
skyParametersHash = -1;
|
|
m_SkySettings = value;
|
|
updatedFramesRequired = 1;
|
|
currentUpdateTime = 0.0f;
|
|
|
|
if (value != null)
|
|
{
|
|
m_Renderer = value.CreateRenderer();
|
|
m_Renderer.Build();
|
|
}
|
|
}
|
|
}
|
|
|
|
public SkyRenderer renderer { get { return m_Renderer; } }
|
|
|
|
public bool IsValid()
|
|
{
|
|
// We need to check m_SkySettings in addition to the renderer because it can be "nulled" when destroying the volume containing the settings (as it's a ScriptableObject) without the context knowing about it.
|
|
return m_Renderer != null && m_Renderer.IsValid() && m_SkySettings != null;
|
|
}
|
|
|
|
public void Cleanup()
|
|
{
|
|
if (m_Renderer != null)
|
|
m_Renderer.Cleanup();
|
|
}
|
|
|
|
}
|
|
}
|