objectToUndo | 需要撤销状态更改的对象。 |
name | 撤销操作的名称。 |
将对象状态存储在撤销堆栈上。
如果执行了撤销操作,那么在调用这一函数后对对象所做的任何更改都将被撤销,并且该对象将恢复到记录的状态。
无法使用这一函数恢复变换组件父项的更改、AddComponent 和对象销毁,应该使用专用函数来恢复。请参阅 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 | 撤销操作的名称。 |
这与多次调用第一个重载的效果是一样的,只不过前者只生成一个撤销操作。