작성사유.
전에 분명 했던것인데 까먹어서 이번에 30분넘게 또 찾는시간이 걸려서 올린다.
나는 유니티에서 webp를 사용할일이 있어서 깃허브에있는 패키지를 사용해야했다. (압도적 감사!)



준비물.

Git이 설치된 상태.

1.프로젝트 폴더 package / manifest.json 파일을 연다.

그대로 복붙해서 사용한다.

이거 사실 구글치면 다 나오는데 굳이 또 쓰는 이유.

정보를 줬으면 폰트 정보 읽는 범위정도는 마우스로 긁게는 해줘야 할 것 아니냐...?

할때마다 구글크롬 개발자모드켜서 자바스크립트 기능 끄는거 매우 귀찮아서 씀

32-126,

,44032-55203 

,12593-12643 

,8200-9900 

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

  • [ ] 유니티의 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();
                            }
                        }
                    }
            }
    }

최근 시나리오가 있거나 알파테스트중 앞의 부분을 건너뛰고싶을때 만들었던 스크립트다.
수 많은 if문과 switch문을 보는게 너무 극혐이라 단 4줄이면 되도록 만들었다!

이 코드를 붙인 오브젝트를 프리팹으로 만들어서 키보드 0~9를 눌렀을 때 
원하는 함수를 매핑하거나 다른 함수의 인스턴스로 불러와서 호출하면 정말 편하다.



using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
using System;

public class SkipHelper : MonoBehaviour
{

//키보드 누르면 등록된 이벤트를 발생시켜 건너 뛰게 하기 위해 만든 스크립트 
    [SerializeField]
    public UnityEvent[] Events;

    void Update()
    {
        if (Input.inputString.Length == 0)
        {
            return;
        }
        else
        {
            Events[Int32.Parse(Input.inputString)].Invoke();
        }
        
    }
}

 

도움이 되었다면 광고나 댓글 한번씩 부탁드립니다~

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

유니티에서 open UPM 패키지 설치하기  (0) 2023.07.21

+ Recent posts