C# Can';不要在统一中启动外部进程

C# Can';不要在统一中启动外部进程,c#,macos,unity3d,exe,C#,Macos,Unity3d,Exe,我在unity中使用process类启动一个流程 Process myProcess = new Process(); myProcess.StartInfo.FileName = path; myProcess.StartInfo.WindowStyle = ProcessWindowStyle.Maximized; myProcess.StartInfo.Arguments = JsonConvert.SerializeObject(param

我在unity中使用process类启动一个流程

Process myProcess = new Process();
        myProcess.StartInfo.FileName = path;
        myProcess.StartInfo.WindowStyle = ProcessWindowStyle.Maximized;
        myProcess.StartInfo.Arguments = JsonConvert.SerializeObject(params);
        myProcess.Start();
我正在为OSx使用unity。我通过创建一个新的控制台应用程序来测试它,该应用程序发送相同的字符串参数并使用相同的路径,它实际上运行良好。当我尝试从unity启动流程时,它不起作用,也不会发送任何错误,甚至流程调用下面的代码也会起作用,因此我认为它成功了,但什么也没有发生。我不明白为什么。
顺便说一下,我在unity button事件中启动流程调用

我使用此方法在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();
}

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

您是否查看过
JsonConvert.SerializeObject(params)的值在控制台和unity中?可能值不同?两者都是相同的json对象,我甚至尝试在两者和应用程序运行(在测试控制台应用程序中)中都不发送参数,并发送一个错误,因为我没有传递数据,但在unity中,控制台没有启动。您尝试过一些建议吗?是的,我尝试过所有建议,但什么都没有发生,应用程序未运行。A尝试了它,但我收到了以下错误
Win32Exception:ApplicationName='/Applications/Bambor Wall Binary/WeightsResults.exe',CommandLine='',CurrentDirectory=''System.Diagnostics.Process.Start\u noshell(System.Diagnostics.ProcessStartInfo-startInfo,System.Diagnostics.Process)System.Diagnostics.Process.Start_common(System.Diagnostics.ProcessStartInfo startInfo,System.Diagnostics.Process)System.Diagnostics.Process.Start()(带检查的包装远程调用)System.Diagnostics.Process:Start()
很抱歉粘贴了整个error@MisaelGaray为什么会有WeightsResults.exe?您正在使用OSX。它不运行exe文件。