在unity游戏中从c#运行python脚本?

2024-05-18 11:40:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图用一些漂亮的3d图形来创建nim游戏。对于那些不知道的人来说,尼姆是一个解决了的游戏,这意味着,假设两名球员都打得很好,我们就可以知道谁会在第一回合获胜

我想制作4种游戏模式:

  1. 两个互相比赛的球员
  2. 玩家与玩得很好的计算机对抗
  3. 计算机与用户用python编写的机器人进行游戏
  4. 玩家与他用python编写的机器人进行游戏

我在高中的计算机科学课上学到了这个游戏,我们得到了一个练习,可以编写一个程序来获得这个游戏的更简单版本

这就是为什么我想包括最后两种模式:让学生用python编写他们的机器人,并在我的游戏中进行测试。我认为它会变得很酷

然而,这意味着我需要弄清楚如何在unity中从c#script运行python脚本。我知道我可以在c#中使用Process来运行外部python脚本,但这需要我知道python可执行文件的位置

我可以创建一个设置菜单,这样用户就可以在那里设置python的路径,但我不喜欢用户必须处理路径设置的事实

我了解到,在windows上,我可以下载一个包含python解释器(python.exe)的可嵌入zip,并将其与游戏一起提供,这样用户甚至不需要在他们的机器上安装python。然而,我在其他平台上找不到类似的zip,特别是linux和mac

所以,我的问题是如何在unity中运行python脚本?有没有办法为windows、mac和linux嵌入python解释器,或者我应该创建一个设置菜单来配置python路径和使用进程? 如果有人能告诉我如何在unity中使用python,我将非常感激

注意:我想使用Python3编写脚本,因此仅适用于Python2的解决方案根本帮不上我的忙

提前谢谢


Tags: 用户路径脚本游戏linuxwindows计算机菜单
2条回答

只有Python2.7.5,Python3没有功能

Python and Unity

但如果您只想使用python作为机器人,我建议您通过TCP(套接字)或其他方式进行通信

您可以使用System.Diagnostics.Process.Start并用它启动cmd

string strCmdText;
strCmdText= "python script.py";
System.Diagnostics.Process.Start("CMD.exe",strCmdText);```

相关问题 更多 >