VR에서 VR과 모니터 두 개에 출력하기
VR 카메라는 Target Eye를 Both,
VR이 아닌 카메라의 Target Eye를 None(Main Display)로 설정
Multi-display
Multi-display allows you to display up to 8 different camera views of your application on up to 8 different monitors at the same time. You could use this for PC games, arcade game machines and simple installations for public display.
Multi-display only runs in standalone mode, and is supported on Windows, Mac OS X and Linux.
Previewing Multi-display in your project
To see the different monitor displays:
Set each Camera
to display to a specific monitor, using its Inspector
. You can assign between 1 and 8 display monitors via the Target Display option (see Fig. 1).
원하는 디스플레이 수 만큼 카메라를 추가하고
Target Display를 다르게 지정한다
Fig. 1: Camera Inspector with Target Display option
You can then preview each display in the Game View, using the drop-down Display menu in the top left-hand corner of the view (see Fig. 2).
Fig 2: Display preview in the top left corner of the Game View
Activating Multi-display
The default display is one monitor, so when you run your application, you need to explicitly activate any additional displays via scripting, using Display.Activate. You need to explicitly activate each additional display and, once activated, you cannot deactivate them.
The best time to activate additional displays is upon creating a new Scene
. A good way to do this is to attach a script component to the default Camera. Make sure you call Display.Activate only once during the startup. You may find it helpful to create a small initial scene to test it.
기본 디스플레이는 한 개지만 Display.Activate를 사용해서 원하는 수 만큼 디스플레이를 활성화 할 수 있다.
한번 활성화 한 디스플레이는 스크립트 수정 후(활성화 수 제거) 재실행해야 비활성화 가능
Display.Activate은 start()에서 한 번만 호출해야하며 가장 좋은 방법은 기본 카메라에 스크립트를 연결하는 것
Example script
using UnityEngine;
using System.Collections;
public class DisplayScript : MonoBehaviour {
// Use this for initialization
void Start() {
Debug.Log("displays connected: " + Display.displays.Length);
// Display.displays[0] is the primary, default display and is always ON.
// Check if additional displays are available and activate each.
if (Display.displays.Length > 1) Display.displays[1].Activate();
if (Display.displays.Length > 2) Display.displays[2].Activate(); ...
}
// Update is called once per frame
void Update() { }
}
API support
The following UnityEngine.Display API functions are supported:
public void Activate()
This activates a specific display on the current monitor’s width and height. This call must be made once upon starting a new Scene. It can be called from a user script attached to a Camera or dummy GameObject
in a new scene.
public void Activate(int width, int height, int refreshRate)
Windows only: This activates a specific display on a custom monitor’s width and height.
UnityEngine.Display API함수가 지원 되는데
현재 모니터의 너비와 높에 대한 특정 디스플레이가 활성화됨
신이 시작할 때 한번만 호출되어야 하며
게임오브젝트 혹은 카메라에 붙은
유저 스크립트에 의해 호출될 수 있음
Controlling monitor display positions
By default, your user’s computer sorts the relative positions of its display monitors based on its X, Y virtual desktop. To override this so that your application displays without any sorting, start your application from the command line and use the command line flag:
-multidisplay
'Unity' 카테고리의 다른 글
[Unity]멀티 디스플레이 VR적용하기(Multi Display - Window+VR) (0) | 2019.04.03 |
---|---|
[Unity]UI 카메라와 메인 카메라 사용하기(UI Camera + Main Camera) (0) | 2019.04.03 |
[Unity] FPS 출력하기 (2) | 2019.03.30 |
[Unity]Rigidbody가 붙어 있는 오브젝트를 움직이는 오브젝트에 고정시키는 방법(회전, 위치 등)(Rigidbody Fixed Method) (0) | 2019.03.29 |
[Unity]draw call optimizer asset (0) | 2019.03.28 |