Files
Fishing2/Assets/Procedural Worlds/GeNa/Scripts/Editor/RiverReflectionProbeManagerEditor.cs
2026-02-28 12:43:44 +08:00

65 lines
2.7 KiB
C#

using UnityEngine;
using UnityEngine.Rendering;
using UnityEditor;
using PWCommon5;
namespace GeNa.Core
{
[CustomEditor(typeof(RiverReflectionProbeManager))]
public class RiverReflectionProbeManagerEditor : PWEditor
{
private EditorUtils m_editorUtils;
private RiverReflectionProbeManager m_manager;
private void OnEnable()
{
m_editorUtils = PWApp.GetEditorUtils(this, null, null, null);
m_manager = (RiverReflectionProbeManager) target;
if (m_manager.m_reflectionProbe == null)
{
m_manager.m_reflectionProbe = m_manager.GetComponent<ReflectionProbe>();
if (m_manager.m_reflectionProbe != null)
{
EditorUtility.SetDirty(m_manager);
}
}
}
public override void OnInspectorGUI()
{
m_editorUtils.Initialize();
if (m_manager == null)
{
m_manager = (RiverReflectionProbeManager) target;
}
m_editorUtils.Panel("GlobalSettings", GlobalPanel, true);
}
private void GlobalPanel(bool helpEnabled)
{
EditorGUI.BeginChangeCheck();
m_manager.m_reflectionProbe = (ReflectionProbe)m_editorUtils.ObjectField("ReflectionProbe", m_manager.m_reflectionProbe, typeof(ReflectionProbe), true);
m_manager.RenderDistance = m_editorUtils.FloatField("RenderDistance", m_manager.RenderDistance, helpEnabled);
if (m_manager.RenderDistance < 0.1f)
{
m_manager.RenderDistance = 0.1f;
}
m_manager.ProbeRenderResolution = (ReflectionProbeRenderResolution)m_editorUtils.EnumPopup("ProbeRenderResolution", m_manager.ProbeRenderResolution, helpEnabled);
m_manager.ProbeMode = (ReflectionProbeMode)m_editorUtils.EnumPopup("ProbeRenderMode", m_manager.ProbeMode, helpEnabled);
m_manager.ProbeRefreshMode = (ReflectionProbeRefreshMode)m_editorUtils.EnumPopup("ProbeRefreshMode", m_manager.ProbeRefreshMode, helpEnabled);
m_manager.ProbeTimeSlicingMode = (ReflectionProbeTimeSlicingMode)m_editorUtils.EnumPopup("ProbeTimeSlicingMode", m_manager.ProbeTimeSlicingMode, helpEnabled);
m_manager.LayerMask = m_editorUtils.LayerMaskField("CullingLayerMask", m_manager.LayerMask, helpEnabled);
if (EditorGUI.EndChangeCheck())
{
EditorUtility.SetDirty(m_manager);
if (m_manager.m_reflectionProbe != null)
{
EditorUtility.SetDirty(m_manager.m_reflectionProbe);
}
}
}
}
}