Unreal PythonScriptPlugin

Unreal PythonScriptPlugin

文章目录

示例代码,引擎里有很多插件已经用 py 写编辑器脚本了

复制代码
unreal.get_editor_subsystem(unreal.LevelEditorSubsystem).load_level("/Game/maps/UVlayoutTest.UVlayoutTest")
unreal.get_editor_subsystem(unreal.StaticMeshEditorSubsystem).join_static_mesh_actors(list_of_actors, my_options)
unreal.get_editor_subsystem(unreal.StaticMeshEditorSubsystem).join_static_mesh_actors(join_options=my_options, actors_to_join=list_of_actors)

Python vs UnLua

UnLua 的主要缺陷在于缺乏类型和强大的 IDE

  • TArray<T> 没法提示
  • IDE 缺乏重构
  • 在 Lua 无法进行 OOP
  • 无法在 Lua 定义 UClass,UProperty

写小范围的脚本还可以,但是。。

官方文档

https://docs.unrealengine.com/en-US/Engine/Editor/ScriptingAndAutomation/Python/index.html

  • init_unreal.py,初始化脚本,可以额外配置
  • Python 路径,默认如下,可以额外配置
  • Python API
    • 支持 UE 反射得到的 蓝图 API
    • Python 类型和 UE 类型映射,支持 isinstance 和 type
    • Stub 提示文件,Engine\Plugins\Experimental\PythonScriptPlugin\SphinxDocs
    • 编辑器相关
      • Undo/Redo
      • 慢任务进度条

Python 路径

复制代码
项目文件夹中的 Content/Python 子文件 夹。

主虚幻引擎安装中的 Content/Python 子文件 夹。

每个启用的插件文件夹中的 Content/Python 子文件 夹。

用户目录中的Documents /UnrealEngine/Python文件夹。
例如,在 Windows 10 上,这相当于C:/Users/Username/Documents/UnrealEngine/Python

PyStub

=> unreal.py

类型很关键,这个包含 Engine 和 Game 所有蓝图反射 API,类似 UnLua Intellisense

入口函数

复制代码
FPyWrapperTypeRegistry::GenerateStubCodeForWrappedTypes

DoString

入口函数

复制代码
FUnrealEnginePythonModule::RunString

执行没什么,就是准备了 unreal 的环境注入 unreal API

TODO 看眼反射怎么export到python的

相关推荐
yingxiao88815 小时前
《异环》全球上线,日韩登顶欧美强势进榜;豆包将新增付费订阅服务
游戏·游戏资讯·行业资讯
jump_jump15 小时前
用官方模板理解 Decky 插件:一次从模板到架构的速览
javascript·python·游戏
东北洗浴王子讲AI16 小时前
室内儿童淘气堡中海洋球闯关与男生女生向前冲游戏的机制差异、体验比较及教育价值研究
游戏
邪修king17 小时前
UE5 C++ 游戏性能优化:大一也能学会的实战级优化指南
c++·游戏·ue5
yingxiao88817 小时前
从流量套利到结构化增长,NetMarvel 助力越南游戏应用实现高速增长!
游戏·手游·市场分析·越南市场·越南游戏市场
薛定谔的猫喵喵18 小时前
基于Claude Code + deepseek 生成打地鼠游戏
游戏
渔民小镇2 天前
4 行代码接入 Spring —— ionet 的生态融合之道
java·服务器·分布式·游戏
上海云盾-小余2 天前
游戏业务接口防护:防爬虫、防刷量、防恶意请求一体化方案
爬虫·游戏
HAPPY酷2 天前
[UE5 避坑指南] 为什么打包后 UI 消失了?Launch Game 与强制加载
java·ui·ue5
装杯让你飞起来啊3 天前
混合练习 —— 猜数字游戏
windows·游戏·kotlin