当前位置: 首页
编程语言
使用Python扩展Unity编辑器实现自定义工具与工作流

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

热心网友 时间:2026-06-10
转载

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

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

同类文章
更多
Python+Pytest接口自动化测试方案从零到一实战实现指南

Python+Pytest接口自动化测试方案从零到一实战实现指南

该方案基于Python+Pytest,采用分层结构清晰管理配置、接口、用例与数据。使用Requests库发送HTTP请求,通过YAML文件实现数据驱动与多环境灵活切换,利用Allure生成美观的可视化测试报告,支持统一断言机制,并可对接Jenkins实现持续集成自动化。

时间:2026-06-10 06:55
Python基础教程:列表查找排序与反转的常用方法

Python基础教程:列表查找排序与反转的常用方法

Python列表的查找(index与count用法)、排序(sort与sorted区别及key参数自定义排序)和反转(reverse、reversed及切片)操作详解,涵盖常见错误处理(如值不存在、类型错误)与实用技巧(安全查找、多级排序、频率统计),帮助高效处理列表数据。

时间:2026-06-10 06:55
使用Python扩展Unity编辑器实现自定义工具与工作流

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

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

时间:2026-06-10 06:55
JVM崩溃FatalError问题排查与解决方案

JVM崩溃FatalError问题排查与解决方案

IntelliJIDEA运行Java服务时,启用定时调试器导致JVM因SIGSEGV崩溃,根本原因在于调试器的native代码与G1垃圾回收机制冲突。关闭“启用定时调试器”选项后,问题彻底解决。

时间:2026-06-10 06:54
基于Map和Bean的策略模式Java实现详解

基于Map和Bean的策略模式Java实现详解

利用Spring容器将策略实现注入到Map中,通过业务标识直接匹配调用,替代传统构造方法或set方法选择策略。该方法减少上下文类维护成本,策略扩展只需在配置中心增加映射,业务侧完全解耦,并利用IoC管理策略生命周期。

时间:2026-06-10 06:54
热门专题
更多
刀塔传奇破解版无限钻石下载大全 刀塔传奇破解版无限钻石下载大全
洛克王国正式正版手游下载安装大全 洛克王国正式正版手游下载安装大全
思美人手游下载专区 思美人手游下载专区
好玩的阿拉德之怒游戏下载合集 好玩的阿拉德之怒游戏下载合集
不思议迷宫手游下载合集 不思议迷宫手游下载合集
百宝袋汉化组游戏最新合集 百宝袋汉化组游戏最新合集
jsk游戏合集30款游戏大全 jsk游戏合集30款游戏大全
宾果消消消原版下载大全 宾果消消消原版下载大全
  • 日榜
  • 周榜
  • 月榜