Описание
Позволяет регистрировать операции отмены для определенных объектов, в которых вы собираетесь внести изменения.
Система отмены сохраняет дельта-изменения в стеке отмены.
Операции отмены автоматически объединяются вместе на основе событий, например. события нажатия мыши будут разделять группы отмены. Появятся сгруппированные операции отмены, которые будут работать как одна отмена. Для управления группировкой вручную используйте Undo.IncrementCurrentGroup.
По умолчанию имя, отображаемое в пользовательском интерфейсе, будет выбрано из действий, принадлежащих группе, с использованием жестко заданного порядка различных видов действий. Чтобы задать имя вручную, используйте Undo.SetCurrentGroupName.
Операции отмены сохраняются либо для каждого свойства, либо для каждого состояния объекта. Таким образом, они хорошо масштабируются при любом размере сцены.
Наиболее важные операции описаны ниже:
Изменение одного свойства:
Undo.RecordObject(myGameObject.transform, "Zero Transform Position");
myGameObject.transform.position = Vector3.zero;
Добавление компонента:Undo.AddComponent
Создание нового игрового объекта:
var go = new GameObject();
Undo.RegisterCreatedObjectUndo (go, "Created go");
Уничтожение игрового объекта или компонента:
Undo.DestroyObjectImmediate (myGameObject);
Изменение родительского элемента преобразования:
Undo.SetTransformParent(myGameObject.transform, newTransformParent, "Set new parent");
Статические Свойства
postprocessModifications | Обратный вызов, который запускается всякий раз, когда создается новый набор модификаций свойства. |
undoRedoPerformed | Обратный вызов, который запускается после выполнения отмены или повтора. |
willFlushUndoRecord | Вызывается до того, как система отмены выполнит сброс. |
Статические Методы
AddComponent | Добавляет компонент к игровому объекту и регистрирует операцию отмены для этого действия. |
ClearAll | Удаляет все операции отмены и повтора соответственно из стеков отмены и повтора. |
ClearUndo | Удаляет все операции отмены для объекта идентификатора, зарегистрированного с помощью Undo.RegisterCompleteObjectUndo, из стека отмены. |
CollapseUndoOperations | Сворачивает все операции отмены до группового индекса в один шаг. |
DestroyObjectImmediate | Уничтожает объект и записывает операцию отмены, чтобы его можно было воссоздать. |
FlushUndoRecordObjects | Убедитесь, что объекты, записанные с помощью RecordObject или ::ref:RecordObjects, зарегистрированы как действие, которое нельзя отменить. В большинстве случаев нет причин вызывать FlushUndoRecordObjects, так как это автоматически выполняется сразу после нажатия кнопки мыши и некоторых других событий, которые обычно отмечают конец действия. |
GetCurrentGroup | Unity автоматически группирует операции отмены по текущему групповому индексу. |
GetCurrentGroupName | Получить имя, которое будет отображаться в пользовательском интерфейсе для текущей группы отмены. |
IncrementCurrentGroup | Unity автоматически группирует операции отмены по текущему групповому индексу. |
MoveGameObjectToScene | Переместить игровой объект из текущей сцены в новую сцену. Требуется, чтобы GameObject находился в корне текущей сцены. |
PerformRedo | Выполнить операцию повтора. |
PerformUndo | Выполнить операцию отмены. |
RecordObject | Записывает любые изменения, внесенные в объект после функции RecordObject. |
RecordObjects | Записывает несколько объектов, которые нельзя выполнить, за один вызов. Это то же самое, что многократно вызывать Undo.RecordObject. |
RegisterCompleteObjectUndo | Сохраняет копию состояний объекта в стеке отмены. |
RegisterCreatedObjectUndo | Зарегистрируйте операцию отмены для вновь созданного объекта. |
RegisterFullObjectHierarchyUndo | Копировать состояния иерархии объектов в стек отмены. |
RegisterImporterUndo | Копирует состояние импортера для заданного пути ресурса. |
RevertAllDownToGroup | Выполняет все операции отмены до группового индекса без сохранения операции повтора в процессе. |
RevertAllInCurrentGroup | Выполняет последнюю операцию отмены, но не записывает операцию повтора. |
SetCurrentGroupName | Установите имя текущей группы отмены. |
SetTransformParent | Устанавливает родителя преобразования в новый родитель и записывает операцию отмены. |
Делегаты
PostprocessModifications | Делегаты, используемые для postprocessModifications. |
UndoRedoCallback | Делегат, используемый для undoRedoPerformed. |
WillFlushUndoRecord | Делегат, используемый для willFlushUndoRecord. |