纳金网

标题: 关于多显示器,多分辨率的问题 [打印本页]

作者: d_kb    时间: 2015-7-5 13:01
标题: 关于多显示器,多分辨率的问题
准备做一个项目,这个项目是一个主显示器带两个副显示器,主显示器是一种分辨率,副显示器是另一种分辨率,主显示器的分辨率大于副显示器的分辨率,这个功能在Unity里面如何来做呢?

我先做了些测试
使用的是Unity5和两个相同分辨率的屏幕,并使用win8.1的显示扩展模式。
测试的结果是这样的

1、首先使用的是Unity的Display这个类,Display.Displays检测到了我有两个屏幕,但是运行了官方提供的代码,然并卵,只在一个-显示器上显示主摄像机的Buffer。仔细Google后,发现Display好像是只支持IOS的Airplay,英文渣,连蒙带猜。
public Camera extCam;
    Camera cam;

    // Use this for initialization
    void Start () {

        //Screen.SetResolution(3840, 1200, true);

        cam = this.GetComponent<Camera>();

        extCam.depth = cam.depth - 1;
        cam.SetTargetBuffers(Display.main.colorBuffer, Display.main.depthBuffer);
        extCam.enabled = false;

   
    }
   
    // Update is called once per frame
    void Update () {

        if (Display.displays.Length > 1 && !extCam.enabled)
        {
            Display.displays[1].SetRenderingResolution(1920, 1080);
            extCam.SetTargetBuffers(Display.displays[1].colorBuffer, Display.displays[1].depthBuffer);
        }
        cam.enabled = Display.displays.Length > 1;
    }
2、使用Unity提供的Screen类强行修改屏幕分辨率,我显示器的分辨率是1920*1200 ,双屏后是3840*2400
如果使用全屏模式,然并卵,还是只在一个显示器上显示。
Screen.SetResolution(3840, 1200, true);
如果使用窗口模式,有用,可以在双屏上显示,然并卵,实际项目显示器分辨率是不同的,而且不能要求客户是窗口模式吧。
Screen.SetResolution(3840, 1200,false);
综上~求解~


作者: KISS2015    时间: 2015-7-5 14:54
你要是用unity3d的框架来实现,你就是高看u3d了,它是一个游戏引擎框架,不是应用级框架,根本就不可能让你共享视野的,除非你作为多人多视窗,打开2个窗户一个低分,一个高分,那样有什么意义了?
作者: KISS2015    时间: 2015-7-5 14:55
或引用系统层接口,作显卡引擎一类的应用
作者: d_kb    时间: 2015-7-5 17:16
恩 ~~
因为听说Quest3D好像可以~
作者: 王者再临    时间: 2015-7-5 17:39
d_kb 发表于 2015-7-5 17:16
恩 ~~
因为听说Quest3D好像可以~

那还不如用Quest3D快些..
作者: d_kb    时间: 2015-7-16 23:15
求方法,重谢




欢迎光临 纳金网 (http://go.narkii.com/club/) Powered by Discuz! X2.5