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