Version: 2019.4


public static void RegisterCompleteObjectUndo (Object objectToUndo, string name);


objectToUndoUndo される必要のある状態が変わっているオブジェクトの配列
nameUndo 名


Undo スタック上のオブジェクトの状態の複製を保存します。

If the undo is performed, any changes made to the object after this function is called will be undone, and the object will be restored to the recorded state.

Transform parent change, AddComponent, and object destruction can not be restored with this function, for that you should use the dedicated functions. See Undo.SetTransformParent, Undo.AddComponent, Undo.DestroyObjectImmediate.

If the object is part of the current Scene (e.g. a game object in the Hierarchy or a component attached to such game object), calling this function will immediately mark the Scene as modified, even if you don't actually change the states of the object afterwards.

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"); = "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". } }

public static void RegisterCompleteObjectUndo (Object[] objectsToUndo, string name);


objectsToUndoUndo される必要のある状態が変わっているオブジェクトの配列
nameUndo 名


これは最初のオーバーロードを複数回呼び出すのと同義で、Undo 操作が1つだけこの関数のために生成されるという事実を省きます。