首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多显示器不工作

多显示器不工作
EN

Stack Overflow用户
提问于 2017-03-28 10:02:54
回答 3查看 11.2K关注 0票数 3

我正在使用Unity5.4.1f1的个人版本,并在Windows独立构建上工作。我想在我的游戏中使用多个显示器。我有两个相机,并设置一个摄像机的目标显示为显示1和目标显示的第二个相机显示2。

此外,我已经激活了显示,但是Display.displays.Length在编辑器和构建上始终是一个

所以它不会在第二个屏幕上显示任何东西。我该怎么做才能在第二个屏幕上显示?

EN

回答 3

Stack Overflow用户

发布于 2017-03-28 10:05:55

您需要用Display.Activate激活代码中的每个附加显示。

参见医生们,其中写着:

激活额外显示的最佳时间是创建一个新场景。这样做的一个好方法是将脚本组件附加到默认的摄像机上。确保在启动期间只调用Display.Activate一次。您可能会发现创建一个小的初始场景来测试它很有帮助。

在这个例子中,在Start()方法中:

代码语言:javascript
复制
if (Display.displays.Length > 1)
    Display.displays[1].Activate();
if (Display.displays.Length > 2)
    Display.displays[2].Activate();

注意:一旦监视器被激活,您就不能停用它。

票数 5
EN

Stack Overflow用户

发布于 2017-03-29 04:55:30

你看到的其实是窃听器。不要浪费你的时间去修理它。去帮忙->报告一只虫子.那就报告问题。对于这个问题,有很多bug报告是打开的,但是最好还是再提交一个来提醒他们,这个问题还没有解决。

这是关于这方面的错误报告。统一声称已经修复了其中的一些,但这不是真的,因为我能够用我的计算机与团结5.6再现这个问题。https://issuetracker.unity3d.com/issues/display-dot-displays-dot-length-outputs-wrong-display-count-in-editor-consolehttps://issuetracker.unity3d.com/issues/display-dot-displays-always-shows-one-displayhttps://issuetracker.unity3d.com/issues/osx-display-dot-displays-dot-length-doesnt-identify-the-second-monitor-connected-to-a-mac

票数 4
EN

Stack Overflow用户

发布于 2017-03-29 08:28:35

这个bug是统一的5.4.1,我用团结5.6.1f1和以上测试过,多个显示器工作得很好,不需要展开屏幕或设置参数,只需要激活显示器和设置相机的目标显示属性

对于这个特性,统一文档有点模糊。

而且,Display.displays.Length总是在编辑器模式下返回1,但是在构建时它工作得很好。

我已经找到了一个解决这个问题的方法,参考post http://answers.unity3d.com/questions/309819/getting-unity-to-render-across-multiple-monitors.html。也就是说,我们必须调用Screen.SetResolution(所有显示的宽度之和、高度、假); false是因为我们不想在全屏模式下呈现。这是因为统一不会创建多个窗口,它只创建一个窗口,我们必须扩展它以匹配多个显示的分辨率。

通过调用Activate()激活调整显示,并将setparams设置为每个显示的起始值。我做了三次显示。

代码语言:javascript
复制
if (Display.displays.Length > 1)
{
 //display 0 is set by default
    Display.displays[1].Activate();
    Display.displays[1].SetParams(Width of display 1,height of display 1,starting x for display 1,starting y for display 1);
}
if (Display.displays.Length > 2)
{
    Display.displays[2].Activate();
    Display.displays[2].SetParams(Width of display 2,height of display 2,starting x for display 2,starting y for display 2);
}

在“生成”设置中,将“显示解析对话框”设置为“禁用”,确保没有选中‘默认值为全屏’。

创建构建,然后是最后一步,运行exe、wtih、、-popupwindow或-multidisplay命令行参数。

如果它仍然不起作用,打开屏幕分辨率对话框并验证监视器的位置。

它工作良好,但它能产生鱼眼效应。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43066541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档