在项目实践中遇到多屏幕展示需求 ,我们可以通过
新建 scence ,新建 camera
给camera 的 targetDisplay 选择 为 display2 其中默认为display1 (如图)
然后在初始化中添加开启代码
//循环遍历存在的所有屏幕
for (int i = 0; i < Display.displays.Length; i++)
{
//开启存在的屏幕显示,激活显示器
Display.displays[i].Activate();
Screen.SetResolution(Display.displays[i].renderingWidth, Display.displays[i].renderingHeight, true);
}
到现在在场景中添加新的 game视图
然后选择display2 ,当前即为刚刚新建camea 的视图 ,可以新建cude 等测试
关于添加UI部分
新建canvas ,在canvas中选择 targetDisplay2 ,那么当前的 canvas 的渲染在 刚刚新建camera 的 屏幕2 上
然后 多个canvas 的渲染先后 由 sortorder 来决定 所以可以通过设置sortorder来进行 ui互动
unity 现在支持同时8屏幕显示
关于其中一些坑点
如果代码开启多屏幕的情况下是 关闭不了的 ,就好比你有多个场景 ,只有这一个场景需要多屏幕,其他场景 不需要,那不好意思,只要一旦开启就不能关闭
多个camera 处理的时候 多重渲染 场景 ,会增加负担
鼠标,ui 事件 的处理 主要是 canvas 的渲染顺序 等
多屏幕识别 (当前鼠标在哪个屏幕活跃)
int number = (int)Mathf.Floor(Mathf.Abs(Input.mousePosition.x) / (float)SceneWidth);
仅在多个屏幕分别率一样的情况下适用 ,SceneWidth 为屏幕分别率Screen.width ,打包适用
(可以用于自动识别屏幕几来开启当前屏幕对应的UI事件等)文章来源:https://www.toymoban.com/news/detail-785715.html
🌞其他待开发中 ,有大佬有更好的方法求留下一起讨论下文章来源地址https://www.toymoban.com/news/detail-785715.html
到了这里,关于unity 双屏,多屏幕显示的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!