Unity3D 客户端版程序全屏和窗口化的一个坑
来源:互联网 发布:好玩的2d网络pc游戏 编辑:程序博客网 时间:2024/05/26 08:43
相关类, UnityEngine.Screen
1、做实验的时候,使用的是Input.GetKey ,写在Update里,所以随后的很多帧都执行了切换逻辑
UnityEngine.Screen.fullScreen 在设置之后,不会立即变更,需要写额外的等待逻辑,确保切换完成
2、如果用户屏幕使用显卡工具进行旋转(我就将显示器竖起来使用,向左旋转了90°),全屏的时候还好,在这之后如果再恢复为窗口化或者使用Alt+Tab切回屏幕,或者进入3D屏保之类这种会导致设备丢失的事件,Unity就会在设备重建的时候出现使显卡驱动崩溃,甚至蓝屏的现象( 我都遇到过了)。暂时还不知道怎么检查屏幕是进行过旋转的,不过就算查出来了,也无法解决,只能给出提示。如果出现这个现象,只能用户自己克服了。
3、窗口化时,分辨率设置如果 Screen.width/height 超过了 Screen.currentResolution 的设定,设置就会失败。
如果ProjectSettings里将分辨率设置超过了目标机器屏幕分辨率,客户端启动后,会自动“裁剪”窗口大小(不是缩放画面哦,会被裁掉一部分游戏画面,而且尺寸也不是规则的)。但是如果满足 Screen.wh < Screen.currentResolution.wh ,就可以设置成功,并且会自动将游戏画面缩放以配合窗口大小调整。
所以应该根据宽高和纵横比计算一个合适尺寸,这点针对笔记本用户尤为重要。
(2013/9/3)4、Screen.Resolutions 里是屏幕可以设置的分辨率集合,但不是全部:视 Screen.currentResolution 为0,则Screen.Resolutions[n] 就是 1、2、3、4,所有小于current的Resolution就不被unity所列举了,不过一般也用不上Screen.Resolutions里的数据。
(2013/9/5)5、在800*600的显示器分辨率下,启动客户端版程序,从窗口切换到全屏后,自动调整为1280,720了,也就是 Screen.fullScreen = true之后, Screen.currentResolution.wh = 1280,720 ,我敢肯定在别的分辨率下也有类似的问题。正因为这一点,Screen.fullScreen 就没任何意义了,因为会扰乱切换回来之后的分辨率设置(参考坑#1)。建议完全使用 Screen.SetResolution 接口来设置,无论是分辨率还是全屏,确保不会出现意想不到的事情。
- Unity3D 客户端版程序全屏和窗口化的一个坑
- 创建一个全屏的窗口
- 关于MFC客户端窗口全屏和撤销全屏问题
- 【原创】在winform程序中实现在IE浏览器中打开一个新的页面,全屏化并屏蔽IE窗口的工具栏和地址栏
- Android 去掉窗口标题和程序全屏
- Android 去掉窗口标题和程序全屏
- 怎样打开一个全屏的IE窗口?
- mac下生成一个全屏的窗口
- Qt子窗口全屏和退出全屏的方法
- Unity3d-最小化全屏程序
- Hello Android - 去掉窗口标题和程序全屏
- MFC对话框程序,去掉边框和标题栏;窗口全屏显示。
- windows 全屏打开一个窗口
- 利用JS脚本Window.Open打开一个全屏的窗口
- 窗口化与全屏设定的区别
- 全屏的窗口
- 一个简单的servlet和客户端交互的程序
- libevent实现的一个简单的服务器和客户端程序
- C结构体之位域(位段)
- MD5算法入门
- js中的文档模式-document.compatMode
- enum数据类型
- 【怎么启动硬件加速】
- Unity3D 客户端版程序全屏和窗口化的一个坑
- 如何判断脚本加载完成
- 生成颜色带实例
- ListView中Button的点击事件
- 项目集和项目组合
- 详解Ntbackup的五种备份方式
- UVa:348 Optimal Array Multiplication Sequence
- (step 8.2.12)hdu 1760(A New Tetris Game)
- 精妙的Morris二叉树遍历算法