事实是您不能同时运行两个不同的场景.你不能.但是,您可以使用Application.LoadLevelAdditive(已过时)或SceneManager.LoadScene("sceneName",LoadSceneMode.Additive);扩展当前场景,该场景与您要的内容无关.您可以做什么:在同一场景中的不同位置放置多个摄像机,然后将每个摄像机渲染到不同的显示.支持的最大显示为 8 .您可以使用Display.displays.Length来检查已连接的人机界面的数量. Display.displays[0]是主要/主要显示. Display.displays[1]下一个显示 Display.displays[2]下一个显示 Display.displays[3]另一个下一个显示调用激活功能以激活显示.Display.displays[1].Activate();激活显示时,您还可以提供宽度,高度和刷新率. (仅适用于Windows )int width, height, refreshRate;width = Screen.width;height = Screen.height;refreshRate = 120;Display.displays[1].Activate(width, height, refreshRate);在激活显示之前,请确保将显示索引设置为摄像机. MyOtherCamera.targetDisplay = 1;//使MyOtherCamera显示在第二个显示器上.现在,您可以调用激活功能.假设我们有4台摄像机和4台显示器,并且我们希望将每台摄像机显示在每个显示器上.Camera[] myCams = new Camera[4];void Start(){ //Get Main Camera myCams[0] = GameObject.FindGameObjectWithTag("MainCamera").GetComponent<Camera>(); //Find All other Cameras myCams[1] = GameObject.Find("Camera2").GetComponent<Camera>(); myCams[2] = GameObject.Find("Camera3").GetComponent<Camera>(); myCams[3] = GameObject.Find("Camera4").GetComponent<Camera>(); //Call function when new display is connected Display.onDisplaysUpdated += OnDisplaysUpdated; //Map each Camera to a Display mapCameraToDisplay();}void mapCameraToDisplay(){ //Loop over Connected Displays for (int i = 0; i < Display.displays.Length; i++) { myCams[i].targetDisplay = i; //Set the Display in which to render the camera to Display.displays[i].Activate(); //Enable the display }}void OnDisplaysUpdated(){ Debug.Log("New Display Connected. Show Display Option Menu....");}Unity3D has native multimonitor support in recent versions. The API documentation suggests that this is tied to connecting each display to a camera view.Is it possible to, instead, map a display to a scene ? So that a user with two monitors could have two different scenes each displayed on one of the monitors ?If it is possible, how would one go about doing this ? 解决方案 No, you can't.Yes! with the Display class.The fact is that you cannot run two different scenes at the-same time. You cannot.However, you can use Application.LoadLevelAdditive (obsolete) or SceneManager.LoadScene("sceneName",LoadSceneMode.Additive); to extend the current scene which has nothing to do with what you are asking.What you can do:Position multiple cameras in different places in the-same scene then render each camera to different display.The max supported display is 8.You can use Display.displays.Length to check the amount Displays connected.Display.displays[0] is the main/primary display.Display.displays[1] Next displayDisplay.displays[2] Next displayDisplay.displays[3] Another Next displayCall the Activate function to activate the display.Display.displays[1].Activate();When activating the display, you can also provide the width, height and refresh rate. (For Windows only)int width, height, refreshRate;width = Screen.width;height = Screen.height;refreshRate = 120;Display.displays[1].Activate(width, height, refreshRate);Before you activate the display, make sure to set the display index to a camera.MyOtherCamera.targetDisplay = 1; //Make MyOtherCamera to display on the second display. You can now call the Activate function.Let's say we have 4 cameras and 4 displays and we want to display each camera to each display.Camera[] myCams = new Camera[4];void Start(){ //Get Main Camera myCams[0] = GameObject.FindGameObjectWithTag("MainCamera").GetComponent<Camera>(); //Find All other Cameras myCams[1] = GameObject.Find("Camera2").GetComponent<Camera>(); myCams[2] = GameObject.Find("Camera3").GetComponent<Camera>(); myCams[3] = GameObject.Find("Camera4").GetComponent<Camera>(); //Call function when new display is connected Display.onDisplaysUpdated += OnDisplaysUpdated; //Map each Camera to a Display mapCameraToDisplay();}void mapCameraToDisplay(){ //Loop over Connected Displays for (int i = 0; i < Display.displays.Length; i++) { myCams[i].targetDisplay = i; //Set the Display in which to render the camera to Display.displays[i].Activate(); //Enable the display }}void OnDisplaysUpdated(){ Debug.Log("New Display Connected. Show Display Option Menu....");} 这篇关于Unity3D:在多台监视器上显示不同的场景的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持! 上岸,阿里云!
07-05 05:29