特定のオブジェクトに対する変更点を Undo クラスによってもとに戻すことができます。
Undo システムは最後に行われた変更を Undo スタックに保存します。
Undo クラスはイベントをベースとして自動的にまとめられます。例えば、 mouse down イベントは Undo グループを分割します。グループ化された Undo クラスは、単体の Undo として表示され、機能します。グループ化を手動で調整したい場合は Undo.IncrementCurrentGroup を使ってください。
デフォルトでは、 UI 上に表示される名称は、グループに属するアクションから選択されます。異なる種類のアクションがハードコードされた順番を利用します。手動で名称を設定する場合は、 Undo.SetCurrentGroupName を使ってください。
Udno 操作はプロパティーやオブジェクトの状態ごとに保持されます。この方法はあらゆるシーンサイズにスケールされます。
重要な Undo 操作の方法は以下のとおりです。
1 つのプロパティーを修正:
Undo.RecordObject (myGameObject.transform, "Zero Transform Position"); myGameObject.transform.position = Vector3.zero;
コンポーネントを追加 :
Undo.AddComponent<RigidBody> (myGameObject);
新しくゲームオブジェクトを生成:
var go = new GameObject (); Undo.RegisterCreatedObjectUndo (go, "Created go");
ゲームオブジェクトまたはコンポーネントを破棄:
Undo.DestroyObjectImmediate (myGameObject);
Transform の親を変更:
Undo.SetTransformParent (myGameObject.transform, newTransformParent);
undoRedoPerformed | Undo か Redo が実行された後、コールバックがトリガーされます。 |
willFlushUndoRecord | Undo システムがフラッシュを行う前に実行されます。 |
AddComponent | ゲームオブジェクトにコンポーネントをアタッチし、その操作の Undo を登録します。 |
ClearUndo | Undo.RegisterCompleteObjectUndo を使って登録した identifier オブジェクトへの Undo 操作を、Undo スタックからすべて削除します。 |
CollapseUndoOperations | すべての Undo 操作を 1 つのステップにまとめます。 |
DestroyObjectImmediate | オブジェクトを破棄し、Undo 操作によって復元できるように記録します。 |
FlushUndoRecordObjects | RecordObject か RecordObjects で記録したオブジェクトが、undo を行えるアクションとして手続きされるようにします。 |
GetCurrentGroup | Unity が自動的に Undo 操作をグループ化したもので現在のグループインデックスを取得します |
GetCurrentGroupName | 現在の Undo グループの UI に表示される名前を取得します。 |
IncrementCurrentGroup | Unity が自動的に Undo 操作をグループ化したもので現在のグループインデックスを取得します |
MoveGameObjectToScene | ゲームオブジェクトを現在のシーンから新しいシーンに移動します。 ゲームオブジェクトは現在のシーンのルートにある必要があります。 |
PerformRedo | Redo 操作を行います。 |
PerformUndo | Undo 操作を行います。 |
RecordObject | RecordObject が呼び出された後の変更点を記録します |
RecordObjects | 1 回の呼び出しで複数のオブジェクトを記録します。これは複数回 RecordObject を呼び出すのと同じです。 |
RegisterCompleteObjectUndo | Undo スタック上のオブジェクトの状態の複製を保存します。 |
RegisterCreatedObjectUndo | 新しくオブジェクトを生成するときの Undo 操作を登録します |
RegisterFullObjectHierarchyUndo | オブジェクトのヒエラルキーの状態を Undo スタック上にコピーします。 |
RevertAllDownToGroup | グループインデックスまでのすべての Undo 操作を行います。 |
RevertAllInCurrentGroup | Undo 操作は実行されますが Redo 操作は行うことはできません |
SetCurrentGroupName | 現在の Undo グループに名前をつける。 |
SetTransformParent | 新しく Transform の親を設定し Undo 操作を記録します |
UndoRedoCallback | undoRedoPerformed に使用されるデリゲート |
WillFlushUndoRecord | willFlushUndoRecord に使用されるデリゲート |