unity3d 如何在Unity中使用python脚本?

xzlaal3s  于 2022-11-15  发布在  Python
关注(0)|答案(5)|浏览(362)

我尝试在Unity中运行一个人脸检测模型。它从网络摄像头获取输入,然后吐出一张人脸。但是尝试用C#来运行这个模型绝对是一场噩梦。尽管我经历了这么多痛苦,我仍然无法让它工作!
如果我能使用python,我就能很容易地完成它。所以,很明显,我想找到一种方法让python脚本在Unity中工作。但是IronPython是我唯一能找到的,而且它已经过时了。
我需要如何使IronPython工作的知识,尽管已经过时,或一些其他的方法。请。

qzlgjiam

qzlgjiam1#

不幸的是,Unity目前还不支持Python。不过,有一个资产可以使用Python。我不确定你能用这个资产做些什么,但我知道它可以提供最小的帮助:https://assetstore.unity.com/packages/tools/integration/python-interpreter-645
快速注意:大多数编程语言的工作方式都是一样的。如果你弄清楚了C#/UnityC#的文档和语法/标点符号,你应该会很好。

a6b3iqyw

a6b3iqyw2#

我曾经尝试在Unity上使用过python,我发现了几种方法:
1.有一个名为“IronPython”的软件包,您可以在其中将python文件添加到您的Unity项目,然后从C#调用一个函数到您的python代码,为此,您应该遵循以下步骤:
我们已经知道我们可以使用python来使用.net内部调用。现在我们可以使用相同的来启动一个控制台,它可以接受Unity引擎中的脚本语言。为此,我们必须包含某些dll文件。这些dll文件必须存在于Assets〉plugins中

IronPython.dll
IronPython.Modules.dll
Microsoft.Scripting.Core.dll
Microsoft.Scripting.dll
Microsoft.Scripting.Debugging.dll
Microsoft.Scripting.ExtensionAttribute.dll
Microsoft.Dynamic.dll

一旦插件就位。
启动Cs代码

PythonEngine engine = new PythonEngine(); 
engine.LoadAssembly(Assembly.GetAssembly(typeof(GameObject))); 
engine.ExecuteFile("Test.py");

其中test.py是python代码。
万俟天蟒一面道:

import UnityEngine from UnityEngine 
import * 
Debug.Log("Hello world from IronPython!")

参考文件:https://github.com/cesardeazevedo/Unity3D-Python-Editorhttp://techartsurvival.blogspot.in/2013/12/embedding-ironpython-in-unity-tech-art.htmlIronPython in Unity3D
这种方式的问题是大多数Python模块不被支持。
2.第二种方法是创建一个像json那样的文件,它包含你想要发送到json的数据,然后创建一个输出json,它发送来自python脚本的输出,这种方法对于你可以发送的内容是非常有限的,因为数据必须包含在你的json中。
1.最后一种方法是安装Nuget包,然后将脚本从Python逐行复制到C#,并在Unity中安装相关模块,这种方法对我很有效,但复制较长代码可能需要时间。https://github.com/GlitchEnzo/NuGetForUnity,然后安装相关的软件包,你应该按下NuGet →管理NuGet软件包,然后选择相关的软件包(对我来说,它是Numpy和它的工作炉).
我希望这对你有帮助

egmofgnx

egmofgnx3#

Unity不支持Python,但您可以编写Python代码并通过Socket编程运行它,使用Python创建服务器并发送数据,在C#中连接到服务器并使用Python发送的数据。

gfttwv5a

gfttwv5a4#

我不知道它是最近的,但有一个统一的包,为python可在统一2019.3和进一步的版本。
警告这个包的第一个版本不能使用Python3。
您可以通过以下链接查看更多信息。https://docs.unity3d.com/Packages/com.unity.scripting.python@2.0/manual/index.html
我希望这对你有帮助。

9rygscc1

9rygscc15#

我们非常激动地宣布Python for Unity 4.0.0-exp.5现已推出!
4.0.0-exp.5是对我们上一个公开发行版的重大升级,并且包含了大量的更改。基于Python 3.7;基于Python 2.7的脚本将需要移植。用户不再需要在他们的系统上安装Python。当Unity域重新加载时,进程内Python不再被重新初始化。删除了进程外API。PySide示例现在在进程内运行,并且简单得多。通过ProjectSettings/requirements.txt文件对虚拟环境工作流的有限支持。许多bug修复。Python for Unity包的文档可以在这里找到,完整的修改日志可以在这里找到。
这是一个实验版本,因此在软件包管理器中不可见。要安装此软件包,请打开软件包管理器,单击左上角的+并选择按名称添加软件包...。输入com.unity.scripting.python作为名称,输入4.0.0-exp.5作为版本,然后单击添加。或者,您可以编辑Packages/manifest.json并添加“com.unity.scripting.python”:“4.0.0-exp.5”添加到依赖项列表,或编辑Python for Unity的现有条目以更新版本。
来源:https://forum.unity.com/threads/python-for-unity-release-announcements.1084688/
文件:https://docs.unity3d.com/Packages/com.unity.scripting.python@4.0/manual/index.html

相关问题