Unity 2022.3.5f1 + Oculus Integration 56.0 (Use Active State)

VR/Oculus Integration 2023. 10. 6. 12:06
반응형

이 자습서에서는 순서대로 완료해야 하는 두 가지 시나리오에서  Active State 를 사용하는 방법을 알아봅니다.

시나리오는 다음과 같습니다.


Active State Overview

당신의 손이 큐브를 잡고 있는지 또는 컨트롤러가 활성화되어 있는지 알고 싶다고 상상해보십시오.

활성 상태 구성 요소는 이러한 일이 발생하는지 알려줍니다.

활성 상태 구성 요소는 GameObject 또는 다른 구성 요소를 관찰하고 일련의 규칙을 사용하여 이를 해석하고 true 또는 false를 반환합니다.

활성 상태 구성 요소는 자체 내부 논리나 활성 상태 구성 요소의 속성에 정의된 규칙을 사용하여 최종 값을 결정합니다.

여러 활성 상태를 연결하여 상호 작용 간의 충돌을 방지하고, 포즈를 감지하고, 필요하지 않은 경우 상호 작용을 비활성화할 수 있습니다.

To learn how to use Active State, see Use Active State.

사전 구축된 장면에서 사용자 정의 포즈를 감지하는 활성 상태를 보려면,see the DebugGesture feature scene.

 


Check State of One Element

활성 상태는 구성 요소의 속성을 관찰하고 해당 속성을 해석하여 부울로 표시합니다.

손이나 컨트롤러, GameObject, 인터랙터와 같은 요소의 활성 상태를 확인할 수 있습니다.

요소의 상태를 확인하려면 해당 ...Active State 구성 요소를 사용하세요.

예를 들어 손은 Hand Active State,를 사용하고, GameObject는 Game Object Active State,를 사용하고, 인터랙터는 Interactor Active State를 사용합니다.

 

이 시나리오에서는 왼손에 대한 잡기 인터랙터의 상태를 확인합니다.

 


Open the HandGrabExamples scene.

 

일단 빠르게 HandGrab을 만들어 보자 

 

Hand Grab을 만들기 어렵 다면 이전글들을 참고 하자

 

 

인터렉터블 오브젝트는 샘플에 있는거 가져다 씀

 

 

직접 만들어 보는것도 좋은 방법이지만 주제를 벗어나므로 그중 아무거나 하나만 가져다 테스트

 

 

Hierarchy에서 활성 상태를 시각적으로 표시하는 Cube GameObject를 만듭니다.

장면의 잡을 수 있는 개체와 상호 작용할 때 볼 수 있는 곳에 큐브를 배치합니다.

 

큐브를 선택 하고 

Inspector 아래에 Grab 인터랙터의 상태를 추적하는 Interactor Active State 구성 요소를 추가합니다.

해당 구성 요소에서 Interactor 속성을 OVRCameraRig > OVRInteraction > OVRHands > LeftHand > HandInteractorsLeft > HandGrabInteractor로 설정합니다.

 

 

이 튜토리얼에서는 손이 잡는 시기만 감지하려고 하므로 속성 속성을  Is Selecting,으로 설정합니다.

 

활성 상태가 변경되는 시기를 확인할 수 있도록 활성 상태 Active State Debug Visual를 추가합니다.

해당 구성 요소에서 Active State 및 Target 속성을 Cube GameObject로 설정합니다.

 

장면을 빌드하고 실행합니다. 왼손으로 장면의 항목을 잡으면 활성 상태가 활성화되어 큐브가 녹색으로 빛납니다.

 


Check State of Multiple Elements

 

이 시나리오에서는 왼손뿐만 아니라 양손의 활성 상태를 확인하여 이전 시나리오에 추가합니다.

요소 그룹의 상태를 확인하려면 Active State Group 구성 요소를 사용합니다.

활성 상태 그룹에서는 각 요소가 평가된 다음 부울 연산자를 사용하여 그룹이 평가되어 true 또는 false의 최종 값을 반환합니다.

 

 

 

Inspector 아래에 두 번째 Interactor Active State 구성 요소를 추가합니다.

해당 구성 요소에서 Interactor 속성을 OVRCameraRig > OVRInteraction > OVRHands > RightHand > HandInteractorsRight > HandGrabInteractor로 설정합니다.

 

Add an Active State Group component.

 

구성 요소에서 활성 상태 목록에 두 요소를 추가합니다.

손이 잡는 시기를 감지하려면 속성 속성을 선택 중으로 설정하세요.

활성 상태 그룹 구성 요소를 추가합니다.

구성 요소에서 활성 상태 목록에 두 요소를 추가합니다. 

요소를 두 개의 Interactor Active State 구성 요소로 설정합니다

 

양손 모두 활성 상태를 활성화할 수 있도록 논리 연산자 속성을 OR로 설정합니다.

 

활성 상태 디버그 시각적 구성 요소에서 활성 상태 속성을 활성 상태 그룹 구성 요소로 설정합니다.

이로 인해 큐브는 활성 상태 그룹의 최종 상태를 모니터링하고 표시합니다.

 

장면을 빌드하고 실행합니다. 한 손이나 양손으로 장면의 항목을 잡으면 활성 상태가 활성화되어 큐브가 녹색으로 빛납니다.

 


 

참고 

https://developer.oculus.com/documentation/unity/unity-isdk-active-state/

https://developer.oculus.com/documentation/unity/unity-isdk-use-active-state/

https://developer.oculus.com/documentation/unity/unity-isdk-feature-scenes/

반응형
: