| name | cpp_editor_api |
| description | CppSkillApiSubsystem 编辑器原语 - 列出/保存未保存包、撤销/重做事务 |
| tags | ["cpp","editor","save","undo","api"] |
CppSkillApiSubsystem - EditorOps
本 skill 文档描述 UCppSkillApiSubsystem 的编辑器相关原语。
入口说明
从 UE Python 中获取子系统:
import unreal
api = unreal.get_editor_subsystem(unreal.CppSkillApiSubsystem)
可用操作
| 方法 | C++ 签名 | Python 返回值 |
|---|
list_dirty_packages | TArray<FString> ListDirtyPackages() const | list[str] |
save_dirty_packages | bool SaveDirtyPackages(bPromptUser, OutError) | (success: bool, error: str) |
undo_last_transaction | bool UndoLastTransaction(OutError) | (success: bool, error: str) |
redo_last_transaction | bool RedoLastTransaction(OutError) | (success: bool, error: str) |
详细接口和示例见 docs/overview.md。
快速示例
import unreal
api = unreal.get_editor_subsystem(unreal.CppSkillApiSubsystem)
dirty = api.list_dirty_packages()
print(f"Dirty packages ({len(dirty)}): {dirty}")
success, error = api.save_dirty_packages(prompt_user=False)
if not success:
unreal.log_error(f"保存失败: {error}")
success, error = api.undo_last_transaction()
if not success:
unreal.log_warning(f"撤销失败: {error}")
success, error = api.redo_last_transaction()
if not success:
unreal.log_warning(f"重做失败: {error}")
注意事项
undo_last_transaction / redo_last_transaction 只能撤销/重做支持事务系统的操作
- 某些编辑器操作可能不支持撤销