Unity Version: 2020.3.14f1
Platform: PC, Mac & Linux Standalone
Template: Universal Render Pipeline
VR Plugin: Oculus Integration (v32.0)
VR 헤드셋을 착용하고 있는 사람의 화면과 PC에서 나오는 화면을 각각 따로 나오게 하고 싶을 경우가 있다.
나의 경우는 VR 플레이어의 모습을 3인칭으로 보는 화면을 미디어아트 프로젝트로 활용하고 싶었다.
VR 카메라 화면이 아닌 일반 camera를 나오게 하는 방법은 어렵지않다. 씬에 VR camera와 일반 camera를 두 개 배치하고 일반 camera에 camera depth값을 VR Camera 보다 높여주면 된다.
3D 또는 HDRP template에서는 inspector 창에서 Camera Component를 보면 camera depth 값을 입력해줄수있다.
하지만 이유는 모르겠지만 URP에서는 depth 값을 inspector에서 찾을 수 없었다. 그래서 CamDepth.cs 클래스를 하나 만들어서 일반 Camera의 Component로 추가하고 Start()에서 GetComponent<Camera>().depth 로 depth 값을 수정해 줄 수 있다.
[RequireComponent(typeof(Camera))]
public class CamDepth : MonoBehaviour
{
Camera cam;
public int depth;
void Start()
{
cam = GetComponent<Camera>();
cam.depth = depth;
}
}
그리고 한가지 더 확인해야 할것은 VR Camera에서는 Target Eye를 Both로 하고 일반 Camera에서는 Target Eye를 none으로 설정해주어야한다. (Target Display는 같아도 상관없다. 그냥 Game View에서 다른 화면을 확인해보고 싶다면 다르게 설정해주면 된다)
위와 같이 설정해주면 VR플레이어는 HMD에서 VR 화면이 보이고, PC에서는 일반 Camera의 화면을 보여주게 된다.
'Unity & C#' 카테고리의 다른 글
C# event에서 listener들을 unsubscribe하는 법 (0) | 2021.10.19 |
---|---|
C# Extension Method 활용하여 MonoBehaviour에서 자주 사용하는 Delay 만들기 (0) | 2021.10.19 |
SourceTree에서 Git LFS 적용하기 (0) | 2021.09.30 |
List<T>를 상속받아 CustomList<T> 만들기 (0) | 2021.09.16 |
DOTween (HOTween v2)를 활용한 애니메이션 연출 (0) | 2021.09.16 |