ほぼ同じ質問がteratailにて確認してはいるのですが、私めの矮小な理解力では分からなかったので、質問させていただきます。
C#側
using System.Collections; using System.Collections.Generic; using UnityEngine; using System.IO; using System.Diagnostics; public class PythonGo : MonoBehaviour { //pythonの場所 private string pyExePath = @"C:\Users\81909\AppData\Local\Programs\Python\Python37\python.exe"; //実行したいスクリプトがある場所 private string pyCodePath = @"C:/Users/81909/Desktop/MeCab/MeCabPython/otameshi.py"; // Start is called before the first frame update private void Start() { //外部プロセス設定 ProcessStartInfo processStartInfo = new ProcessStartInfo() { //実行するpythonファイル FileName = pyExePath, //シェルを使うかどうか UseShellExecute = false, //ウィンドゥを開くかどうか CreateNoWindow = true, //テキスト出力をStandardOutputストリームに書き込むかどうか RedirectStandardOutput = true, //実行スクリプト 引数(複数可能) Arguments = pyCodePath + " " + "Hello,Python.", }; //外部プロセス開始 Process process = Process.Start(processStartInfo); //ストリームからの出力を得る StreamReader streamReader = process.StandardOutput; string str = streamReader.ReadLine(); //外部プロセス終了 process.WaitForExit(); process.Close(); //実行 print(str); } }
python側
import sys playerSelect=str(sys.argv[1]) print( "REPLY[" + playerSelect + "]:" + "Hello,CS." )
出力結果はNullです。
teratailで以前見られた質問でのベストアンサーが
「相対パスを使ってますが、こいつの実行時のカレントパスはどこにあるか確認してみては」
でした。
カレントパスをどう弄るのか?そもそもunityで動かす際のカレントパスはどこを指しているのか?等、具体的なことが分からないです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/05 01:44
2020/06/05 02:16