C# Can';不要在统一中启动外部进程
我在unity中使用process类启动一个流程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
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文件。