实现UE4中的撤销与重做功能(Undo/Redo)
发布时间
阅读量:
阅读量
常规的编辑操作通常包含撤销与重做功能,如图所示为VS编辑菜单中的撤销/重做选项,而在UE4编辑器的Edit菜单中同样提供了Undo和Redo的功能设置。

若希望在游戏中实现撤销与重做功能,需自行编写相关代码,例如对Actor的移动或隐藏操作进行撤销与重做。接下来将实现一个简化的版本。
对于每一种需要支持撤销和重做的功能类型,均应创建一个独立的类来存储所有必要的信息。例如,在处理物体位置移动时,该类需保存Actor的指针、移动前的位置以及移动后的位置。当执行撤销操作时,物体将被移回至移动前的位置;而执行重做操作时,则将其移至移动后的位置。以下代码展示了用于实现移动与隐藏功能的编辑数据类,这些类均继承自一个共同的基类FEditData。
class FEditData
{
public:
virtual bool Redo() { return false; }
virtual bool Undo() { return false; }
virtual ~FEditData() {}
};
全部评论 (0)
还没有任何评论哟~
