허구헌 날 에어링크 안될 때 튜토리얼 찾아보는거 귀찮아서 빼 먹은 설정이 있는지 확인하기 위한 간단한 체크리스트.

  • [ ] 유니티의 open xr 패키지를 설치했는가?
  • [ ] 오큘러스 앱의 설정에 runtime openXR을 체크했는가?
  • [ ] 오큘러스 앱과 퀘스트가 초록색 불로 연결됨 이라고 뜨는가?
  • [ ] 유니티 프로젝트 세팅에 openxr 설정을 체크했는가?
  • [ ] 오큘러스 앱 설정 → 시스템 → 링크에서 에어링크사용 토글을 체크했는가?
  • [ ] 오큘러스를 pc와 연결했을때 HMD에 뜨는 usb디버깅 체크를 했는가?
  • [ ] 개발자 모드가 설정 되어 있는가?
  • [ ] 에셋스토어에서 oculus intrgration을 설치 했는가?

 

'Unity 3D > VR' 카테고리의 다른 글

VR에서 canvas UI를 OverRay처럼 사용하는 방법.  (0) 2022.12.30
VR 탈착 감지코드  (0) 2022.12.25

환경. 오큘러스 인테그레이션을 설치.

용도.VR에서는 Canvas overay를 사용하지 못한다.
그래서 VR개발할때는 월드카메라를 기본으로 사용하는데. 
그러면 다른 가까운 3D 오브젝트에 캔버스가 묻혀버리는 일이 발생해서 글자가 안보인다.

2021 이전에는 카메라의 DepthOnly 를 사용해서 만들지만

이후 버전에서는 CameraStack을 사용하기때문에 사용방법이 달라져서
다른 분 들은 나 처럼 시간허비 하지 말라고 적는다.

1.하이어라키는 다음과같이 구성한다.
CenterEye가 VR에서 사용하는 카메라인데 
카메라를 복붙을하던 새로만들어도 좋다.
다음과같이 준비해 주고 


먼저 UI카메라의 설정을 오버레이로 설정한다.
그리고  보여주고싶은 컬링마스크를 지정한다. 

캔버스의 레이어를 카메라의 컬링마스크와 똑같이 해준다.

그럼 UI카메라에는 다른 3D 오브젝트를 제외한 UI패널만 나타나게 되고.



메인카메라의 Stack에 오버레이 UI카메라를 등록해주면.
저 UI카메라와 겹쳐서 보인다.


도움이 되었다면 댓글과 광고 한번씩만 눌러주시면 감사 하겠습니다.

'Unity 3D > VR' 카테고리의 다른 글

유니티 오큘러스 에어링크 안될 때 체크리스트.  (0) 2023.01.01
VR 탈착 감지코드  (0) 2022.12.25

openVR과 oculus integration 에셋 설치 된 상태에서

 void Start()
    {
        OVRManager.HMDMounted += mounted;
        OVRManager.HMDUnmounted += UnMounted;
    }

    public void mounted()
    {
        Debug.Log("mounted!");
    }
    public void UnMounted()
    {
        Debug.Log("Bye!");
    }

 

스팀VR의 경우는 이렇다.

public class HeadsetDetection : MonoBehaviour
        {       
        public SteamVR_Action_Boolean headsetOnHead = SteamVR_Input.GetBooleanAction("HeadsetOnHead");
                public bool IsHeadsetOnHead;
                public Action OnHeadsetOnHead, OnHeadsetOffHead;
            void Update()
                {
             if (headsetOnHead != null)
                    {
                        if (headsetOnHead.GetStateDown(SteamVR_Input_Sources.Head))
                        {
                            Debug.Log("Headset placed on head");
            
                            IsHeadsetOnHead = true;
            
                            if (OnHeadsetOnHead != null)
                            {
                                OnHeadsetOnHead();
            
                            }
                        }
                        else if (headsetOnHead.GetStateUp(SteamVR_Input_Sources.Head))
                        {
                            Debug.Log("Headset removed");
            
                            IsHeadsetOnHead = false;
                            if (OnHeadsetOffHead != null)
                            {
                                OnHeadsetOffHead();
                            }
                        }
                    }
            }
    }

+ Recent posts