特定のオブジェクトに対する変更点を 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 または ::ref:RecordObjects は Undo 可能なアクションとして記録されていることを確認してください。FlushUndoRecordObjects はマウスボタンを離し、通常、アクションをまとめるその他のイベントが終わった直後に自動的に行われるため、たいていは、わざわざ呼び出す必要はありません。 |
| GetCurrentGroup | Unity が自動的に Undo 操作をグループ化したもので現在のグループインデックスを取得します |
| GetCurrentGroupName | 現在の Undo グループの UI に表示される名前を取得します。 |
| IncrementCurrentGroup | Unity が自動的に Undo 操作をグループ化したもので現在のグループインデックスを取得します |
| MoveGameObjectToScene | Move a GameObject from its current scene to a new scene. It is required that the GameObject is at the root of its current scene. |
| PerformRedo | Redo 操作を行います。 |
| PerformUndo | Undo 操作を行います。 |
| RecordObject | RecordObject が呼び出された後の変更点を記録します |
| RecordObjects | 1 回の呼び出しで複数の Undo 可能なオブジェクトを記録します。これは複数回 Undo.RecordObject を呼び出すのと同じです。 |
| RegisterCompleteObjectUndo | Undo スタック上のオブジェクトの状態の複製を保存します。 |
| RegisterCreatedObjectUndo | 新しくオブジェクトを生成するときの Undo 操作を登録します |
| RegisterFullObjectHierarchyUndo | オブジェクトのヒエラルキーの状態を Undo スタック上にコピーします。 |
| RevertAllDownToGroup | 処理中の Redo 操作を保存せずに、グループインデックスまでのすべての Undo 操作を行います。 |
| RevertAllInCurrentGroup | Undo 操作は実行されますが Redo 操作は行うことはできません |
| SetCurrentGroupName | 現在の Undo グループに名前をつける。 |
| SetTransformParent | 新しく Transform の親を設定し Undo 操作を記録します |
| UndoRedoCallback | undoRedoPerformed に使用されるデリゲート |
| WillFlushUndoRecord | willFlushUndoRecord に使用されるデリゲート |