objectToUndo | 需要撤消其状态更改的对象。 |
name | 撤消操作的名称。 |
在撤消堆栈上存储对象的副本状态。
如果执行撤消,则在调用此函数后对该对象进行的任何更改都将被撤消,并且该对象将恢复到记录的状态。
使用此函数无法恢复变换父级更改、添加组件和对象销毁,为此,您应该使用专用函数。请参阅 Undo.SetTransformParent、Undo.AddComponent、Undo.DestroyObjectImmediate。
如果该对象是当前场景的一部分(例如,层次结构中的游戏对象或附加到此类游戏对象的组件),则调用此函数将立即将场景标记为已修改,即使您之后未实际更改该对象的状态。
using UnityEngine; using UnityEditor;
public class UndoExamples { [MenuItem("Undo Examples/RegisterCompleteObjectUndo")] static void Example() { GameObject player = new GameObject("Player");
// Store the states of the player object. Undo.RegisterCompleteObjectUndo(player, "Player name change");
player.name = "New Player";
// If you choose "Edit->Undo Player name change" from the main menu now, the name of the object will be restored to "Player". } }
objectsToUndo | 需要撤消其状态更改的对象数组。 |
name | 撤消操作的名称。 |
这等效于多次调用第一个重载,除了只为一次生成一个撤消操作。