Unreal PythonScriptPlugin

news/2025/2/12 13:49:16/

Unreal PythonScriptPlugin

文章目录

  • Unreal PythonScriptPlugin
    • Python vs UnLua
    • 官方文档
    • PyStub
    • DoString

示例代码,引擎里有很多插件已经用 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的


http://www.ppmy.cn/news/1201384.html

相关文章

MapReduce性能优化之小文件问题和数据倾斜问题解决方案

文章目录 MapReduce性能优化小文件问题生成SequenceFileMapFile案例 &#xff1a;使用SequenceFile实现小文件的存储和计算 数据倾斜问题实际案例 MapReduce性能优化 针对MapReduce的案例我们并没有讲太多&#xff0c;主要是因为在实际工作中真正需要我们去写MapReduce代码的场…

uniapp 微信小程序 uni-file-picker上传图片报错 chooseAndUploadFile

这个问题真的很搞&#xff0c; 原因是微信开发者工具更新了&#xff0c;导致图片上传问题。 解决方法&#xff1a; 将微信开发者工具的基础库改为2.33.0一下即可。 在微信开发者工具详情 - 本地设置中&#xff08;记得点击‘推送’按钮&#xff09;&#xff1a;

【汇编】[BX]和loop指令(学习笔记)

一、[BX] 利用BX寄存器存储偏移地址与DS配合使用 在DEBUG中可以使用mov al,[0]&#xff0c;但在ml编译器里面会变成mov al,0 可以使用BX寄存器来解决 mov bx,0 mov al,[bx]补充 1、使用描述性符号()表示取内容 2、使用idata表示常量 二、loop循环指令 1、loop的概述 需要…

【MogDB/openGauss如何实现自增主键】

自增主键是我们在设计数据库表结构时经常使用的主键生成策略&#xff0c;主键的生成可以完全依赖数据库&#xff0c;无需人为干预&#xff0c;在新增数据的时候&#xff0c;我们只需要将主键的值设置为default&#xff0c;数据库就会为我们自动生成一个主键值。 MySQL主键自增…

【10套模拟】【2】

关键字&#xff1a; 哈希函数解决问题、进栈、无向图边与度、双向链表插入新结点、折半查找判定树ASL、孩子兄弟表示法、树变二叉、快排partiction划分

php 使用phpoffice/phpspreadsheet拓展实现导出图片

基础操作参考&#xff1a;https://blog.csdn.net/huaweichenai/article/details/95994006 文档地址&#xff1a;https://phpspreadsheet.readthedocs.io/ github地址&#xff1a;https://github.com/PHPOffice/PhpSpreadsheet 导出插入图片主要使用\PhpOffice\PhpSpreadshee…

【验证码系列】Google验证码从数据训练到机器自动识别算法构建

文章目录 1. 写在前面2. CSCI级设计决策2.1. Google验证码突防关联2.2. Google验证码突防行为设计决策 3. Google验证码突防体系结构设计3.1. Google验证码突防部件3.1.2. Google验证码突防组成 3.2. Google验证码突防软件3.2.1. Google验证码突防软件体系结构3.2.2. Google验证…

【带头学C++】----- 三、指针章 ---- 3.9 数组作为函数的参数

当数组作为函数参数时&#xff0c;有几种常见的方式可以传递数组给函数&#xff1a; 数组作为指针传递&#xff1a; 数组名在函数调用时会自动转换为指向数组第一个元素的指针。通过指针可以访问数组元素&#xff0c;但无法获取数组的大小。在函数中修改指针指向的值会影响原始…