游乐游手机版
首页/编程语言/文章详情

使用Python扩展Unity编辑器实现自定义工具与工作流

时间:2026-06-10 06:55
为UnityPythonScripting包新增存根生成器、Python编辑器窗口和脚本浏览器。存根将C API转为Python类型信息,支持IDE代码补全。编辑器窗口避免C 编译等待。脚本窗口实现浏览与执行。

Unity官方此前推出过一个名为 Python Scripting 的扩展包,用于在 Editor 中引入 Python 脚本支持——不过,官方似乎已经停止维护。最近正好有些闲暇时间,我便尝试对该包进行了一系列扩展。

扩展后的插件包地址:Github - Python Scripting

事先声明:Python 并非我的专长,扩展手法未必最优,欢迎指正与交流!

让 Python IDE 获得 Unity/C# API 的智能提示

如果没有 Python 存根(Stubs),在 IDE 中编写 Python 代码时,你会发现代码补全与参数提示全部失效——编辑器仿佛失去了响应。存根的核心作用,是将 Unity 的 C# API 转化为 Python 能够理解的类型信息。对比来看,左侧是开启存根后的效果,右侧则是未启用存根的情况:

使用Python扩展Unity编辑器

新增的 PythonStubsGenerator 类专门负责生成这些存根文件。通过 Unity Editor 菜单栏的 Tools/Python Scripting/Re-Generate Stubs,即可为当前项目中的所有 C# API 批量生成相应的存根。生成的文件默认保存在 /Library/PythonScripting/stubs 文件夹内。

存根生成完毕后,还需在 Python IDE 中进行少许配置。以 VSCode 为例,需要在 Python 代码所在的文件夹下创建 .vscode 目录,并添加 settings.json 文件,内容如下:

注意:此处假设 Python 代码文件夹位于 Unity 项目根目录内,因此路径采用相对写法 ../Library/PythonScripting/stubs

{
    "python.analysis.extraPaths": [
        "../Library/PythonScripting/stubs"
    ],
    "python.analysis.stubPath": "../Library/PythonScripting/stubs",
    "python.analysis.autoSearchPaths": true,
    "python.analysis.useLibraryCodeForTypes": true,
    "python.analysis.typeCheckingMode": "basic",
    "python.languageServer": "Pylance"
}

用 Python 代码打造 Editor Window

放着现成的 C# 不用,偏要换成 Python——这听起来有些自找麻烦,但背后的理由其实十分现实:随着项目规模增长,C# 的编译耗时会变得非常漫长。如果能改用 Python 编写 Editor Window,就能彻底摆脱编译等待,调整工具窗口时无需再干瞪眼等待刷新。

新增的 PythonEditorWindow 类提供了一套回调接口。你在 Python 侧注册这些回调后,便能调用 Unity API 完成 Editor Window 的绘制工作。

使用Python扩展Unity编辑器

在 Python Manager 窗口中,找到 Python Scripting 包,导入 Python Editor Window 示例。之后在 Unity Editor 菜单栏的 Samples/Python Scripting/Editor Window 中即可打开示例窗口。

使用Python扩展Unity编辑器

导入后,相关示例代码位于 Assets/Samples/Python Scripting//Python Editor Window/Editor 文件夹中(请记得替换版本号)。

使用Python扩展Unity编辑器

Python 脚本浏览器与执行工具

写好了 Python 工具脚本,自然需要一个方便浏览和执行的入口吧?

新增的 Python Scripts 窗口正是为此场景设计的。通过 Unity Editor 菜单栏的 Tools/Python Scripting/Python Scripts Window 即可打开它。

不过在使用之前,需要先在 Project Settings 中指定 Python 脚本的存放文件夹:

使用Python扩展Unity编辑器

设置完成后,打开 Python Scripts 窗口,所有 Python 脚本便会显示在左侧列表中:

使用Python扩展Unity编辑器

列表的第一项始终是 Script Editor ——选中它,你可以在右侧直接输入 Python 代码,然后点击 Execute 按钮执行。后续项目则对应 Project 中 Python 脚本的目录结构,点击任意脚本即可预览内容,同样支持一键执行。

来源:https://www.jb51.net/python/365406amo.htm
上一篇JVM崩溃FatalError问题排查与解决方案 下一篇Python基础教程:列表查找排序与反转的常用方法
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
IDEA中SpringBoot项目热部署实现指南
编程语言 · 2026-07-11

IDEA中SpringBoot项目热部署实现指南

Springboot项目在IDEA中实现热部署需依次完成:开启自动编译(静态与动态编译)、启用热部署策略、引入spring-boot-devtools依赖、关闭浏览器缓存,最后启动测试即可生效,省去手动重启时间,大幅提升开发效率。

Java实现Excel转JSON的代码详解
编程语言 · 2026-07-11

Java实现Excel转JSON的代码详解

使用Java结合FreeSpire XLS库可自动将Excel转为JSON,通过读取工作表并映射为键值对,高效支持数据迁移、报表导出与系统对接,大幅提升效率并消除手动录入错误。

Golang高效布谷鸟过滤器多字符集字符串过滤
编程语言 · 2026-07-11

Golang高效布谷鸟过滤器多字符集字符串过滤

布谷鸟过滤器支持删除操作,通过指纹截断与双哈希定位实现多字符集高效过滤。指纹截断需采用fnv64a或xxhash快速哈希并取低8位,桶索引使用独立双哈希避免假阳性。并发安全需以固定数组配合sync atomic实现。

Java使用Poi-tl按Word模板生成动态表格
编程语言 · 2026-07-11

Java使用Poi-tl按Word模板生成动态表格

Poi-tl是Word导出工具,文档周全,支持多级合并表头生成。通过{{text}}、{{?var}}、{{ table}}标签处理模板,传入TableRenderData对象即可动态渲染表格。示例展示用户信息表格生成,并提供工具类消除表格首行缩进,确保格式正确。

Go语言微服务集成Swagger生成交互式API文档完整教程
编程语言 · 2026-07-11

Go语言微服务集成Swagger生成交互式API文档完整教程

在Go微服务中集成Swagger常见四大问题:swaginit初始化失败需确保存在packagemain及注释;SwaggerUI加载失败因路由映射错误或未导入docs;@Param注解必须严格遵循格式;部署后接口文档显示localhost因硬编码host,应删除或通过环境变量动态注入。