欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Unity 多屏幕分辨率处理

程序员文章站 2023-12-31 14:24:52
...

当只有一个屏幕的时候,修改分辨率及位置

 //这里设置Windows位置
[DllImport("user32.dll")]
static extern bool SetWindowPos(IntPtr hWnd, int hWndInsertAfter, int X, int Y, int cx, int cy, uint uFlags);
[DllImport("user32.dll")]
static extern IntPtr GetForegroundWindow();
private const uint SWP_SHOWWINDOW = 0x0040;

void Start(){
     int width=1920,height=860; 
     Screen.SetResolution(width,height,false,60);//设置主屏的分辨率  可以进行动态的更新分辨率
     StartCoroutine(SetPostion(0,110,width,height));// 110是根据 (1080-860)/ 2 =110 得出的数据进行居中,这个只做位置选定
}
//设置窗口位置
IEnumerator SetPostion(int posx,int posy,int width,int height){
     yield return new WaitForSeconds(0.1f);
     bool result = SetWindowPos(GetForegroundWindow(),0,posx,posy,width,height,SWP_SHOWWINDOW)
}


当有多个屏幕时

1.主屏幕使用代码,和一个屏幕时一样 (上面的设置完全一样)

Screen.SetResolution(1920,860,false,60);//设置主屏的分辨率  可以进行动态的更新分辨率
。。。

2.分屏幕使用代码 ()

Display.display[1].Activate(1920,860,60);//先进行**选择分辨率大小
Display.display[1].SetParams(1920,860,0,110);// 110是根据 (1080-860)/ 2 =110 得出的数据进行居中,这个只做位置选定
相关标签: Unity

上一篇:

下一篇: