Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在应用程序中将Unity作为嵌入式窗口运行时性能不佳_C#_Wpf_Unity3d_Windows 10 - Fatal编程技术网

C# 在应用程序中将Unity作为嵌入式窗口运行时性能不佳

C# 在应用程序中将Unity作为嵌入式窗口运行时性能不佳,c#,wpf,unity3d,windows-10,C#,Wpf,Unity3d,Windows 10,我试图通过以下代码运行Unity应用程序: IntPtr parentHandle = Process.GetCurrentProcess().MainWindowHandle; ProcessStartInfo procInfo = new ProcessStartInfo(_pathToUnityExe); Logging.Log_Critical.Send("Starting process at " + _pathToUnityExe); if (_useEmbeddedWindow)

我试图通过以下代码运行Unity应用程序:

IntPtr parentHandle = Process.GetCurrentProcess().MainWindowHandle;
ProcessStartInfo procInfo = new ProcessStartInfo(_pathToUnityExe);
Logging.Log_Critical.Send("Starting process at " + _pathToUnityExe);

if (_useEmbeddedWindow)
{
    procInfo.Arguments = "-parentHWND " + parentHandle + " " + Environment.CommandLine;
    procInfo.UseShellExecute = true;
    procInfo.CreateNoWindow = true;
}

_externalAppProcess = Process.Start(procInfo);
我已经注意到WPF应用程序的性能有些差,即响应速度慢,动画和媒体连接不畅。无论Unity应用程序加载的是复杂场景还是完全空白的场景,都会出现这种情况

由于Unity应用程序是通过一个进程启动的,我不认为存在线程/阻塞问题,但我不确定它可能是什么,除非这是Unity中的一个问题

有人对此有想法或经验吗?

如果需要的话,我也愿意使用其他方法,我主要需要能够控制Unity窗口的大小和位置。我最怀疑的是
-parentHWND
的论点会导致Unity方面的怪异行为

然而,这段代码似乎并没有单独删除窗口标题栏,有没有一种方法可以不用
-parentHWND
参数来实现这一点

procInfo.CreateNoWindow = true;

我的解决方案是在启动Unity可执行文件作为进程时,不使用嵌入式窗口标志。然后,我不需要在
StartProcessInfo
对象中设置任何参数

在Unity方面,我在初始场景中有一个脚本,确保Unity应用程序没有Windows标题栏装饰。在该脚本的
start
override方法中,我有:

Screen.fullScreen = true;

我的解决方案是在启动Unity可执行文件作为进程时,不使用嵌入式窗口标志。然后,我不需要在
StartProcessInfo
对象中设置任何参数

在Unity方面,我在初始场景中有一个脚本,确保Unity应用程序没有Windows标题栏装饰。在该脚本的
start
override方法中,我有:

Screen.fullScreen = true;

你试过打开探查器,看看是什么在吞噬你珍贵的框架吗?@Vakore这是我尝试的第一件事,不幸的是VS给了我一个启动探查器失败的错误。我必须尝试一个Windows性能工具。你尝试打开探查器,看看是什么侵蚀了你宝贵的帧?@Vakore这是我尝试的第一件事,不幸的是VS给了我一个启动探查器失败的错误。我必须尝试一种Windows性能工具