python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python扩展Unity编辑器

使用Python扩展Unity编辑器

作者:火雨z

本文主要介绍了使用Python扩展Unity编辑器,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

Unity官方发布过一个 Python Scripting 包,为Unity Editor增加了Python脚本支持,不过官方似乎已经不再维护这个包了,最近恰好有空,便试着对这个包做了些扩展。

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

事先声明:我不熟Python,对package的扩展手法不一定最优,欢迎指正!

使Python IDE支持提示Unity/C# API

没有Python Stubs(存根)时,Python IDE在编写Python代码时无法弹出代码补全提示,也没法查看函数参数。

有无存根的对照(左有,右无):

新增的 PythonStubsGenerator 类实现了生成Python Stubs的功能。通过Unity Editor菜单项 Tools/Python Scripting/Re-Generate Stubs 可以针对当前项目的所有C# API生成存根。生成的存根文件保存在 <PROJECT_ROOT>/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 Manager窗口中,找到Python Scripting包,导入Python Editor Window示例,然后在Unity Editor菜单项 Samples/Python Scripting/Editor Window 中可以打开示例窗口。

导入后的相关示例代码位于 Assets/Samples/Python Scripting/<PYTHON_SCRIPTING_PACKAGE_VERSION>/Python Editor Window/Editor 文件夹中(注意替换版本号)。

Python脚本浏览器和执行工具

写好了Python工具脚本后,还需要有一个快捷浏览和执行这些脚本的工具。

新增的 Python Scripts 窗口就是做这个的,它可以通过Unity Editor菜单项 Tools/Python Scripting/Python Scripts Window 打开。

首先需要在Project Settings中设置Python脚本的存放文件夹:

然后打开Python Scripts窗口,就可以看到所有Python脚本了:

左侧列表的第一个项目永远是 Script Editor ,选中此项时,可以直接在右侧输入Python代码,然后点击 Execute 按钮执行Python代码。

后续项目则对应着Project中Python脚本的目录结构,点击项目项时,可以预览脚本内容,同样可以点击 Execute 按钮执行Python代码。

到此这篇关于使用Python扩展Unity编辑器的文章就介绍到这了,更多相关Python扩展Unity编辑器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文