如何在Python应用中通过按钮触发打开Unreal Engine项目
Python应用触发打开Unreal Engine项目的实现方案
核心逻辑非常简单:直接调用系统进程启动UE编辑器可执行文件,传入目标.uproject文件的绝对路径作为启动参数即可,无需对接复杂的UE SDK。
前置准备
- 先确认两个核心路径的正确性,提前手动测试有效性:
- UE编辑器可执行文件路径:UE5 Windows默认路径为
C:\Program Files\Epic Games\UE_5.x\Engine\Binaries\Win64\UnrealEditor.exe,UE4 Windows默认路径为C:\Program Files\Epic Games\UE_4.xx\Engine\Binaries\Win64\UE4Editor.exe,Mac路径为/Users/Shared/Epic Games/UE_版本号/Engine/Binaries/Mac/UnrealEditor.app - 目标UE项目的
.uproject文件绝对路径,例如D:\UEProjects\MyTestProject\MyTestProject.uproject
- UE编辑器可执行文件路径:UE5 Windows默认路径为
- 手动验证路径:Windows下可以打开CMD,输入
"你的UE编辑器路径" "你的uproject路径"回车,确认可以正常打开项目,避免路径拼写错误导致后续调用失败。
按钮点击事件核心实现
Python GUI库的按钮点击逻辑本质都是调用subprocess模块启动独立进程,以下是两种常见GUI库的示例:
PyQt/PySide场景示例
import sys import subprocess from PySide6.QtWidgets import QApplication, QWidget, QPushButton # 替换为你自己的实际路径 UE_EDITOR_PATH = r"C:\Program Files\Epic Games\UE_5.2\Engine\Binaries\Win64\UnrealEditor.exe" TARGET_UPROJECT_PATH = r"D:\UEProjects\MyTestProject\MyTestProject.uproject" class MainWindow(QWidget): def __init__(self): super().__init__() self.setWindowTitle("UE项目启动工具") self.resize(300, 200) open_ue_btn = QPushButton("打开UE项目", self) open_ue_btn.clicked.connect(self.open_ue_project) open_ue_btn.move(100, 80) def open_ue_project(self): try: # creationflags是Windows专属参数,作用是隐藏多余的CMD弹窗 subprocess.Popen( [UE_EDITOR_PATH, TARGET_UPROJECT_PATH], creationflags=subprocess.CREATE_NO_WINDOW ) except Exception as e: print(f"启动失败:{e}") if __name__ == "__main__": app = QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec())
Tkinter场景示例
import tkinter as tk import subprocess # 替换为你自己的实际路径 UE_EDITOR_PATH = r"C:\Program Files\Epic Games\UE_5.2\Engine\Binaries\Win64\UnrealEditor.exe" TARGET_UPROJECT_PATH = r"D:\UEProjects\MyTestProject\MyTestProject.uproject" def open_ue_project(): try: subprocess.Popen( [UE_EDITOR_PATH, TARGET_UPROJECT_PATH], creationflags=subprocess.CREATE_NO_WINDOW ) except Exception as e: print(f"启动失败:{e}") root = tk.Tk() root.title("UE项目启动工具") root.geometry("300x200") open_btn = tk.Button(root, text="打开UE项目", command=open_ue_project) open_btn.pack(pady=80) root.mainloop()
注意事项
- 可以将UE编辑器路径、uproject路径做成可配置项,支持用户手动选择,适配不同设备的安装路径和多UE版本需求。
- Mac/Linux环境下直接移除
creationflags参数即可,路径对应替换为对应系统的格式。 - 如果需要启动项目后自动执行指定操作,可以追加UE支持的命令行参数,例如加
-game直接启动游戏模式,加-run=pythonscript -script="自定义脚本路径.py可以启动UE后自动执行指定Python脚本。
内容的提问来源于stack exchange,提问作者Nitin Roy
相关产品推荐
相关产品推荐

