Запустить python скрипт из c# в игре за единство? - PullRequest
1 голос
/ 28 апреля 2020

Я пытаюсь создать игру nim в единстве с хорошей 3D-графикой. Для тех, кто не знает, nim - это решенная игра, которая означает, что, если оба игрока играют отлично, мы можем знать, кто победит в первый ход.

Я хочу сделать 4 режима игры:

  1. Два игрока, которые играют друг против друга.
  2. Игрок играет против компьютера, который играет идеально.
  3. Компьютер играет против бота, которого пользователь написал в python .
  4. Игрок играет против бота, которого он написал в python.

Я узнал об этой игре на уроке информатики в средней школе, и нам дали задание написать программа, которая выиграет более простую версию этой игры.

Вот почему я хочу включить два последних режима: позволить учащимся писать своих ботов в python и тестировать их в моей игре. Я думаю, что это может получиться очень круто.

Однако это означает, что мне нужно выяснить, как запустить скрипт python из скрипта c# в единстве. Я знаю, что могу использовать Process в c# для запуска внешнего сценария python, но для этого требуется, чтобы я знал местоположение исполняемого файла python.

Я мог бы сделать меню настроек, так что пользователь может установить путь к python там, но мне не нравится тот факт, что пользователю придется иметь дело с настройками пути.

Я узнал, что на windows я могу загрузить встраиваемый zip-файл, содержащий интерпретатор python (python .exe) и просто поставляющий его вместе с игрой, чтобы пользователю даже не нужно было устанавливать python на своем компьютере. Однако я не смог найти аналогичный zip для других платформ, в частности linux и ma c.

Итак, мой вопрос: как мне запускать python скриптов в единстве? Есть ли способ встроить интерпретатор python для windows, ma c и linux, или я должен создать меню настроек для настройки пути python и использования процессов? Если кто-нибудь может дать мне представление о том, как использовать python в единстве, я буду очень признателен за это.

Примечание: я хочу использовать python 3 для сценариев, поэтому решения, которые работают для python 2 только не может мне помочь.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 28 апреля 2020

Вы можете использовать System.Diagnostics.Process.Start и запускать cmd с ним

string strCmdText;
strCmdText= "python script.py";
System.Diagnostics.Process.Start("CMD.exe",strCmdText);```
0 голосов
/ 28 апреля 2020

Только python 2.7.5, python 3 не работает

Python и Unity

, но если вы просто хотите использовать python как бот, я предлагаю вам общаться через TCP (сокет) или другими способами ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...