版本: Unity 6 (6000.0)
语言英语
  • C#

Undo.RegisterCompleteObjectUndo

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交内容,但我们确实会阅读用户提供的每一个建议更改,并在适用的情况下进行更新。

关闭

提交失败

由于某些原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您花时间帮助我们提高 Unity 文档的质量。

关闭

取消

声明

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

参数

objectToUndo 需要撤消其状态更改的对象。
name 撤消操作的名称。

描述

在撤消堆栈上存储对象的副本状态。

如果执行撤消,则在调用此函数后对该对象进行的任何更改都将被撤消,并且该对象将恢复到记录的状态。

使用此函数无法恢复变换父级更改、添加组件和对象销毁,为此,您应该使用专用函数。请参阅 Undo.SetTransformParentUndo.AddComponentUndo.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". } }

声明

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

参数

objectsToUndo 需要撤消其状态更改的对象数组。
name 撤消操作的名称。

描述

这等效于多次调用第一个重载,除了只为一次生成一个撤消操作。

© . This site is unofficial and not affiliated with Unity Technologies.