一周前我问了一个非常相似的问题,我仍然试图找到答案。
我建立了一个完整的新Unity3D项目,在其中放入一个对象,创建一个C#脚本,并在Start()方法中放入以下代码。
void Start() {
Process myProcess = new Process();
myProcess.StartInfo.FileName = "gnome-terminal";
myProcess.StartInfo.UseShellExecute = false;
myProcess.StartInfo.RedirectStandardInput = true;
myProcess.StartInfo.RedirectStandardOutput = true;
//myProcess.StartInfo.CreateNoWindow = true; for testing
myProcess.Start();
//Thread.Sleep(6000); somebody suggest wait some time, but it make no difference
myProcess.StandardInput.WriteLine("sensible-browser");
}
我为我的Linux Ubuntu系统构建项目并执行它。一个新的终端出现了,就这样。正常情况下,现在浏览器应该是打开的,但不是。
那只是我的测试程序。在我的原籍中,我必须读/写stdin/stdout。
我非常绝望,希望你们能帮助我
谢谢
最佳答案
使用bash
而不是gnome-terminal
。
Process myProcess = new Process();
myProcess.StartInfo.FileName = "bash";
myProcess.StartInfo.UseShellExecute = false;
myProcess.StartInfo.RedirectStandardInput = true;
myProcess.Start();
myProcess.StandardInput.WriteLine("sensible-browser");
myProcess.StandardInput.Close();