- 最后登录
- 2018-5-18
- 注册时间
- 2015-1-13
- 阅读权限
- 70
- 积分
- 3057
- 纳金币
- 975
- 精华
- 0
|
准备做一个项目,这个项目是一个主显示器带两个副显示器,主显示器是一种分辨率,副显示器是另一种分辨率,主显示器的分辨率大于副显示器的分辨率,这个功能在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);
综上~求解~
|
|