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

时间:2015-05-17 21:27:29

标签: process unity3d background

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

提前致谢!

3 个答案:

答案 0 :(得分:2)

您使用

Application.runInBackground = true;

使您的应用程序在后台运行。将其设置为false以使其不在后台运行。

Application.runInBackground = false;

答案 1 :(得分:0)

如果您在Unity App中按某个按钮,您将失去当前应用的焦点。

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

Intent launchIntent = getPackageManager().getLaunchIntentForPackage("com.package.address");
startActivity(launchIntent);

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

Intent i = new Intent(this, MyMainActivity.class);
i.setAction(Intent.ACTION_MAIN);
i.addCategory(Intent.CATEGORY_LAUNCHER);
startActivity(i);

所以,我认为你可以尝试一些技巧。
A可以执行B,然后B立即将其焦点重新给A(有些闪烁) 或者执行B,然后A可以在后台从B收回其聚焦。

答案 2 :(得分:0)

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

进行此更改并使用StartInfo.CreateNoWindow = true使我可以继续关注Unity。