urp 3d로 프로젝트 만들기
asset에 있는 package인지 뭔지 삭제
package manager에서 XR interaction toolkit 설치
얘도 받기 + oculus 체크
package manager > XR Interaction Toolkit에서
Starter Assets, XR Device Simulator sample import하기
demo scene의 모습
만약 지금 실행하고 싶으면 VR 연동해서 해야됨
XR device simulator sample 받은거 프리팹 넣어주면 pc에서도 가능
vr 연결해서 할거면 저 프리팹 active false 해줘야됨
조작은 보면서 해보자,, 꽤나 다루기 어렵
Sample Scene으로 돌아와서 XR Origin 만들어주자
Preset 설치: 컴포넌트, 인스펙터 속성, 임포터 설정 등의 '기본값'을 저장하고 불러오는 파일
저기 가면 presets 있는데 선택하면 우측 위에 add 어쩌구 있따
이렇게 5개 add하자
add하면 여기에서 확인 가능
Right / Left 구분해주자
left controller 들어와서
?랑 점3개 사이에 볼륨 같은 버튼 누르기
left controller는 left, right은 right 연결해주자
plane 생성 후 xr origin 위치 조정
PC 실행을 위해 아까 얘 끌어오기
대충 controller처럼 만들어서 model이라고 해줬다
left controller / right controller의 자식으로 model을 넣어서 볼 수도 있지만
저 손 prefab으로 만들고 left controller / right controller의 model prefab에 넣어줘도 된다
interact 시도하는 손: XR Interactor 컴포넌트 필요
손에 잡히는 물체: XR Interaction 컴포넌트 필요
controller 수동으로 만들어보기위해
camera offset의 자식으로 XR > Direct Interactor 두개 생성해서 이름 정해주기
+ 얘네도 왼쪽 오른쪽 맞춰서 Add Preset해주기
Hover / Select 이런거 enter 어쩌구도 고를 수 있음
아까처럼 prefab에 model 연결 얘네도 해주자
손에 잡힐 Cube > GrabObject로 만듦
위치는 카메라랑 가깝게 (0, 2, -8)
XR Grab Interactable 추가
GrabObject is kinematic (RB) 켜주기
손잡이가 cube에 닿을정도로 앞으로 가고 T > G는 꾹 누르고있으면 큐브가 없어지는데
씬 뷰에서 보면 손잡이 뒤쪽으로 Cube가 잡혀요이
left / right controller에서 Select Action Trigger State Change로 되어있는데
얘를 Sticky로 바꾸면
G를 꾹 누르지 않아도 한번만 누르면 붙어있어요
이 셋에 EventTest 함수 넣어주기
using UnityEngine;
public class EventTest : MonoBehaviour
{
public void OnFirstHoverEntered()
{
Debug.Log($"{gameObject.name} - OnFirstHoverEntered");
}
public void OnLastHoverExited()
{
Debug.Log($"{gameObject.name} - OnLastHoverExited");
}
public void OnHoverEntered()
{
Debug.Log($"{gameObject.name} - OnHoverEntered");
}
public void OnHoverExited()
{
Debug.Log($"{gameObject.name} - OnHoverExited");
}
public void OnFirstSelectEntered()
{
Debug.Log($"{gameObject.name} - OnFirstSelectEntered");
}
public void OnLastSelectExited()
{
Debug.Log($"{gameObject.name} - OnLastSelectExited");
}
public void OnSelectEntered()
{
Debug.Log($"{gameObject.name} - OnSelectEntered");
}
public void OnSelectExited()
{
Debug.Log($"{gameObject.name} - OnSelectExited");
}
public void OnActivated()
{
Debug.Log($"{gameObject.name} - OnActivated");
}
public void OnDeactivated()
{
Debug.Log($"{gameObject.name} - OnDeactivated");
}
}
3 오브젝트 다 Interactable Events 부분에 본인 오브젝트 넣고 이름 똑같은 Event Test 함수 넣어준다.
(Focus는 없음)
*right controller는 기존꺼 사용
'공부 > Unity' 카테고리의 다른 글
[Unity] XR interaction toolkit과 UI 사용하기 / VR 한글 키보드 (2) | 2025.07.04 |
---|---|
[Unity] Input System을 이용한 XR / VR / 모바일 등의 입력을 한번에 처리하는 방법 (0) | 2025.06.27 |
[Unity] 컴포넌트 안쓰고 위치, 애니메이션 연동 (Oculus + Photon) (1) | 2025.06.24 |
[Unity] Photon Network 포톤 네트워크 Lobby manager 예시 (2) | 2025.06.24 |
[Unity] Oculus Integration / 컨트롤러 연결 및 조준선 표시 (2) | 2025.06.19 |