Unity多塊屏幕顯示設置以及分辨率設置

最近有一個需求需要完成的。在Unity中做一個軟件驅動兩塊會移動的顯示器進行仿真展示。
爲了方便還是把所有的內容都放在一個場景裏邊展示,並且只使用一臺電腦。這樣就不要兩臺電腦進行通信了。
需要設置多塊屏幕顯示,首先只需要在場景裏放置多個攝像機。
這裏寫圖片描述
然後爲每個相機選擇目標顯示器,也就是說這個相機渲染的畫面會被放到對應的顯示器上。
這裏寫圖片描述
選好之後我們可以增加一個Game視圖,來大概的看一下我們的多屏顯示。點擊如圖所示的按鈕。AddTab–>Game。
這裏寫圖片描述
之後把Game試圖放在一起我們就可以看到如下圖的樣子。
這裏寫圖片描述


上面我們就完成了第一步,多塊屏幕顯示不同的內容。然後我們需要分別爲每一塊屏幕設置分辨率來達到正確的顯示效果。首先我們需要關閉Unity啓動時候的選擇分辨率窗口。把BuildSettings/PlayerSettings/ResolutionandPresentation下的Display Resolution Dialog設置爲Disabled。這樣我們就可以自己進行設置了。
這裏寫圖片描述


之後就在代碼裏對每一塊顯示器進行設置。這裏有一個API是Display.displays可以給我們返回一個display的數組。我們可以打開對應的顯示器,然後設置正確的分辨率。代碼如下所示。我要設置屏幕分辨率爲1080*1920.所以對兩塊屏幕分別進行了設置。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class DoubleScreendisplay : MonoBehaviour
{
    public Text inforText;
    void Awake()
    {

        Display.displays[0].Activate();
        Display.displays[0].SetRenderingResolution(1080, 1920);
        inforText.text = "display1 width:" + Display.displays[0].renderingWidth + "display1 heigh:" + Display.displays[0].renderingHeight;
        Display.displays[1].Activate();
        Display.displays[1].SetRenderingResolution(1080, 1920);
        inforText.text += "display2 width:" + Display.displays[1].renderingWidth + "display2 heigh:" + Display.displays[1].renderingHeight;
    }
    private void Start()
    {
    }
}

值得注意的是,這裏在編譯器下運行是會報錯的,可能沒打包都不到所有的設備。打包之後進行測試就OK了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章