Process 在Unity的后台启动应用程序

Process 在Unity的后台启动应用程序,process,unity3d,background,Process,Unity3d,Background,有人知道在Unity中按下按钮时如何在后台启动应用程序(使用C#)?我到处寻找,但只能找到Process.Start()执行外部应用程序的方法。不幸的是,这把焦点转向了它,这是我不想要的 提前谢谢 您使用 Application.runInBackground = true; 使应用程序在后台运行。将其设置为false以使其不在后台运行 Application.runInBackground = false; 如果您在Unity应用程序中按下一个按钮,您将失去当前应用程序的焦点 但是,, 1

有人知道在Unity中按下按钮时如何在后台启动应用程序(使用C#)?我到处寻找,但只能找到Process.Start()执行外部应用程序的方法。不幸的是,这把焦点转向了它,这是我不想要的

提前谢谢

您使用

Application.runInBackground = true;
使应用程序在后台运行。将其设置为false以使其不在后台运行

Application.runInBackground = false;

如果您在Unity应用程序中按下一个按钮,您将失去当前应用程序的焦点

但是,, 1) 您可以使用PackageManager API执行其他android应用程序。 (Unity可以使用AndroidJavaClass调用android的api)

2) 执行后,您可以在当前任务堆栈应用程序之间重新排序

Intent i = new Intent(this, MyMainActivity.class);
i.setAction(Intent.ACTION_MAIN);
i.addCategory(Intent.CATEGORY_LAUNCHER);
startActivity(i);
所以,我想你可以试试看
A可以执行B,然后B立即将焦点返回给A。(有些闪烁)

或者A执行B,然后A可以从背景中的B取回聚焦

如果调用
process.StandardOutput.ReadToEnd()
,则可能需要切换到和,以便Unity在读取进程输出时不会阻塞


做出更改并使用
StartInfo.CreateNoWindow=true
可以让我将注意力集中在Unity上。

这使得Unity在后台运行,而不是在第二个过程中运行,这似乎是OP所要求的。@Junuxx现在看到了这一点。他从未说过任何关于二次加工的事。我想这是他想要的,因为这对他来说很有效。他确实想要。他说他想从Unity“在后台启动一个应用程序”。他还说他尝试了
Process.Start()
,这是用来启动外部进程的。但这不是不起作用的。他要求帮助的是,这个外部过程是在前台启动的。所以,要么OP的问题表达得非常糟糕,要么他接受了一个根本无法解决问题的答案。@Junuxx我真的很想知道这一点。我会在问题评论部分问他。@Junuxx他不记得了,但说如果他选择了我的答案,这意味着它对他有效。我想这就是他的意思。如果不使用上面的代码,Unity在没有集中注意力时会冻结。他的措辞是个问题。你为什么认为这是关于Android上的Unity?嘿,我知道你选择了我的答案,但我有一个问题。你的意思是,即使游戏/编辑器/应用程序没有被关注,你还是想让Unity继续在后台运行,或者你想在后台启动另一个应用程序?我很困惑,我想确定我的答案是你想要的。@Programmer,我真的不确定我当时想做什么。这是一篇很老的帖子,但如果我选择了你的答案,那就意味着它对我有用
Intent i = new Intent(this, MyMainActivity.class);
i.setAction(Intent.ACTION_MAIN);
i.addCategory(Intent.CATEGORY_LAUNCHER);
startActivity(i);