Files
AR-Menu/Library/PackageCache/com.needle.engine-exporter@8c046140a1d9/UniversalRenderPipeline/Editor.Sync/VolumeEditorSync.cs
2025-11-30 08:35:03 +02:00

38 lines
864 B
C#

using UnityEditor;
using UnityEditor.Rendering;
using UnityEngine.PlayerLoop;
using UnityEngine.Rendering;
namespace Needle.Engine.UniversalRenderPipeline
{
public static class VolumeEditorSync
{
[InitializeOnLoadMethod]
private static void Init()
{
EditorModificationListener.CreateCustomHook += OnCreateHook;
EditorApplication.update += Update;
}
private static VolumeChangeTracker volumeTracker;
private static int frame = 0;
private static void Update()
{
if (frame++ % 10 != 0) return;
volumeTracker?.Update();
}
private static void OnCreateHook(EditorModificationHookArguments obj)
{
if (obj.Editor is VolumeEditor vol)
{
obj.Used = true;
var volume = vol.target as Volume;
volumeTracker = new VolumeChangeTracker(volume, obj.PropertyChangedEvent);
}
volumeTracker?.Validate();
}
}
}