幸福341 发表于 2021-3-12 12:42

Unreal Python 引擎重启脚本

本文章转载自 智伤帝的个人博客 - 原文链接

前言

最近在虚幻商城看到一个简单而好用的免费小插件 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(,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
页: [1]
查看完整版本: Unreal Python 引擎重启脚本