无法在Unity中启动外部进程

时间:2017-03-29 19:04:01

标签: c# macos unity3d exe

我通过统一使用Process类开始一个过程。

Process myProcess = new Process();
        myProcess.StartInfo.FileName = path;
        myProcess.StartInfo.WindowStyle = ProcessWindowStyle.Maximized;
        myProcess.StartInfo.Arguments = JsonConvert.SerializeObject(params);
        myProcess.Start();

我正在为OSx使用unity。我通过创建一个新的控制台应用程序来测试它,发送相同的字符串参数并使用相同的路径,它实际上工作正常。当我尝试从统一启动过程时,它只是不起作用,即使进程调用下面的代码工作也不会发送任何错误,所以我认为它成功但没有任何反应。我不明白为什么。 顺便说一句,我在一个统一按钮事件中启动进程调用。

1 个答案:

答案 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();
}

对于异步版本,您需要进行轻微修改。