Files
KopMap/Assets/AmplifyShaderEditor/Plugins/Editor/Utils/UndoUtils.cs

119 lines
2.7 KiB
C#
Raw Normal View History

2025-04-03 02:30:16 +08:00
using UnityEditor;
using UnityEngine;
using UnityEngine.Profiling;
using UnityEngine.Internal;
using System;
namespace AmplifyShaderEditor
{
public class UndoUtils
{
public static void RegisterUndoRedoCallback( Undo.UndoRedoCallback onUndoRedo )
{
if ( Preferences.User.EnableUndo )
{
Undo.undoRedoPerformed -= onUndoRedo;
Undo.undoRedoPerformed += onUndoRedo;
}
}
public static void UnregisterUndoRedoCallback( Undo.UndoRedoCallback onUndoRedo )
{
if ( Preferences.User.EnableUndo )
{
Undo.undoRedoPerformed -= onUndoRedo;
}
}
public static void RegisterCompleteObjectUndo( UnityEngine.Object objectToUndo, string name )
{
if ( Preferences.User.EnableUndo )
{
Profiler.BeginSample( "Undo_RegisterCompleteObjectUndo" );
Undo.RegisterCompleteObjectUndo( objectToUndo, name );
Profiler.EndSample();
}
}
public static void RegisterCreatedObjectUndo( UnityEngine.Object objectToUndo, string name )
{
if ( Preferences.User.EnableUndo )
{
Profiler.BeginSample( "Undo_RegisterCreatedObjectUndo" );
Undo.RegisterCreatedObjectUndo( objectToUndo, name );
Profiler.EndSample();
}
}
public static void ClearUndo( UnityEngine.Object obj )
{
if ( Preferences.User.EnableUndo )
{
Profiler.BeginSample( "Undo_ClearUndo" );
Undo.ClearUndo( obj );
Profiler.EndSample();
}
}
public static void RecordObject( UnityEngine.Object objectToUndo, string name )
{
if ( Preferences.User.EnableUndo )
{
Profiler.BeginSample( "Undo_RecordObject" );
Undo.RecordObject( objectToUndo, name );
Profiler.EndSample();
}
}
public static void RecordObjects( UnityEngine.Object[] objectsToUndo, string name )
{
if ( Preferences.User.EnableUndo )
{
Profiler.BeginSample( "Undo_RecordObjects" );
Undo.RecordObjects( objectsToUndo, name );
Profiler.EndSample();
}
}
public static void DestroyObjectImmediate( UnityEngine.Object objectToUndo )
{
if ( Preferences.User.EnableUndo )
{
Profiler.BeginSample( "Undo_DestroyObjectImmediate" );
Undo.DestroyObjectImmediate( objectToUndo );
Profiler.EndSample();
}
}
public static void PerformUndo()
{
if ( Preferences.User.EnableUndo )
{
Profiler.BeginSample( "Undo_PerformUndo" );
Undo.PerformUndo();
Profiler.EndSample();
}
}
public static void PerformRedo()
{
if ( Preferences.User.EnableUndo )
{
Profiler.BeginSample( "Undo_PerformRedo" );
Undo.PerformRedo();
Profiler.EndSample();
}
}
public static void IncrementCurrentGroup()
{
if ( Preferences.User.EnableUndo )
{
Profiler.BeginSample( "Undo_IncrementCurrentGroup" );
Undo.IncrementCurrentGroup();
Profiler.EndSample();
}
}
}
}