我通过统一使用Process类开始一个过程。
Process myProcess = new Process();
myProcess.StartInfo.FileName = path;
myProcess.StartInfo.WindowStyle = ProcessWindowStyle.Maximized;
myProcess.StartInfo.Arguments = JsonConvert.SerializeObject(params);
myProcess.Start();
我正在为OSx使用unity。我通过创建一个新的控制台应用程序来测试它,发送相同的字符串参数并使用相同的路径,它实际上工作正常。当我尝试从统一启动过程时,它只是不起作用,即使进程调用下面的代码工作也不会发送任何错误,所以我认为它成功但没有任何反应。我不明白为什么。 顺便说一句,我在一个统一按钮事件中启动进程调用。
答案 0 :(得分:0)
我使用此方法在Unity中调用外部进程。
public static void ExecProcess(string name, string args)
{
Process p = new Process();
p.StartInfo.FileName = name;
p.StartInfo.Arguments = args;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.CreateNoWindow = true;
p.StartInfo.UseShellExecute = false;
p.Start();
string log = p.StandardOutput.ReadToEnd();
string errorLog = p.StandardError.ReadToEnd();
p.WaitForExit();
p.Close();
}
对于异步版本,您需要进行轻微修改。