|
本文章转载自 智伤帝的个人博客 - 原文链接
前言
最近在虚幻商城看到一个简单而好用的免费小插件 Restart Editor
经过之前的进阶菜单折腾之后,我觉得 Python 实现也不难。
所以我就用 Python 来进行扩展了。
Python 脚本重启引擎
# -*- coding: utf-8 -*-
"""
自动重启引擎
"""
from __future__ import division
from __future__ import print_function
from __future__ import absolute_import
__author__ = 'timmyliang'
__email__ = '820472580@qq.com'
__date__ = '2020-09-18 15:53:10'
import sys
import subprocess
import unreal
from UE_Util import error_log, toast
editor_util = unreal.EditorLoadingAndSavingUtils()
sys_lib = unreal.SystemLibrary()
paths = unreal.Paths()
@error_log
def main():
# NOTE 保存对象
check = editor_util.save_dirty_packages_with_dialog(True,True)
if not check:
toast(u"保存失败")
return
uproject = paths.get_project_file_path()
editor = sys.executable
# NOTE 启动当前引擎
subprocess.Popen([editor,uproject,'-skipcompile'],shell=True)
# NOTE 退出引擎
sys_lib.quit_editor()
if __name__ == "__main__":
main()
重启引擎之前先判断是否有资源需要进行报错操作,如果保存失败则跳过重启步骤
然后获取引擎路径,这里通过 sys.executable 可以获取到 UE4Editor.exe
继而通过 subprocess 外调命令行启动一个新的虚幻。
接着就是退出当前虚幻。
其实脚本并不复杂,我也看了 C++ 插件的调用方式。
C++ API 里面直接就有一个 restart 相关的函数,调用就完事了~
配置
结合之前弄好的菜单扩展,可以通过配置 json 文件实现 C++ 插件的位置配置。 参考
唯一比较遗憾的是 Python 无法添加自定义的图标。
虽然有 ToolMenuEntry 类里面有 setIcon 的 API ,但是 Python 暂时还无法扩充自定义的 style_set_name
所以图标只能设置现有的引擎 style_set_name |
|