当前位置: 首页 > news >正文

Unreal PythonScriptPlugin

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.lryc.cn/news/220845.html

相关文章:

  • 什么是数据可视化,为什么数据可视化很重要?
  • chatgpt相关问题解答
  • nssm将exe应用封装成windows服务
  • golang实现极简todolist
  • C# Onnx Dense Face 3D人脸重建,人脸Mesh
  • Java 8 新特性 Stream 的使用场景(不定期更新)
  • 公开IP属地信息如何保护用户的隐私?
  • 大桌子初步使用
  • 初步了解ORM框架之一Mybatis
  • 2023 electron最新最简版windows、mac打包、自动升级详解
  • Ubuntu18.04安装pcl-1.12.1,make时报错:/usr/bin/ld: cannot find -lvtkIOMPIImage
  • 表单验证不通过的一个点form中未定义这个字段
  • 最新、最全、最详细的 K8S 学习笔记总结
  • Emacs之高亮显示超过80个字符部分(一百三十)
  • C语言 每日一题 PTA 11.7 day13
  • 产品经理进阶:产品的起点是发现并理解问题
  • Java —— 类和对象(一)
  • RabbitMQ(高级特性)优先级队列
  • 盘点苹果手机导出照片到电脑的3个方法!
  • px、rpx、em以及rem的区别与用法
  • 类(class)
  • FPGA时序分析与约束(10)——生成时钟
  • A. Hit the Lottery
  • mvn: Downloading from pluginRepository
  • docker相关知识
  • Springboot 集成 RocketMQ(进阶-消息)
  • 10 索引优化与查询优化
  • linux PVE安装
  • ZZ038 物联网应用与服务赛题第J套
  • 【寒武纪(3)】媒体处理系统的系统控制、视频输入和后处理子系统