사용자 정의 컨트롤러 : 모든 컨트롤러에서 사용 가능한 사용자 저의 컨트롤러 지원
- VRTK 플랫폼에서 하나의 사용자 정의 컨트롤러 정의
- 사용자 정의 모델과 이벤트 재정의 가능
- EmptyObject에 3D모델 및 이벤 핸들러 작성
- VRTK_SDKManager 객체 사용 -> 왼쪽, 오른쪽 컨트롤러 개별적 지정
-> Empty object로 부터 계층 구조를 가지고 객체생성(Controlelr, Left, Right)
-> VRTK_SDKManager에 Left는 Left Controller, Rigth는 Right Controller에 할당된다.
- 컨트롤러부터 이벤트를 받기 위해 VRTK_ControllerEvents 컴포넌트 추가
- VRTK_ControllerEvents_UnityEvents 컴포넌트를 추가해서 개별 버튼에 대한 이벤트핸들러 작성
-> 이벤트 핸들러 작성을 위해 VRTK 모듈 필요 (using VRTK;)
컨트롤러 이벤트 핸들러 : ControllerInteractionEventArgs
- left, rigth에 버튼에 대한 index
-> uint index = VRTK_ControllerReference.GetRealIndex(e.controllerReference); (오른쪽1,왼쪽2)
- 버튼 press 강도
-> e.buttonPressure (0~1)
- Touchpad 좌표
-> e.touchpadAxis (x,y)
- Touchpad 각도
-> e.touchpadAngle
물리엔진 모델
- 오브젝트에 물리엔진 연산을 하기 위해서는 Rigidbody 컴포넌트가 필요
- Rigidbody : 외부 객체 충돌 처리, 중력 적용, 외부 힘 반응
-> Constraints : 외부 힘에 의해 고정되야하는 조건(위치, 회전)
- Collider : 물리엔진 적용 영역, 외부에 힘이 가해지면 물리 연산 수행 (원이 가장 연산이 적다.)
-> 3D 오브젝트마다 개별 collider를 가짐
-> 임의 오브젝트는 mesh collider 사용 ( mesh 모양 따라 collider 생성 )
충돌 이벤트 발생 조건 (이벤트는 충돌한 객체 모두에서 발생)
- 두 객체 모두 collider가 있다.
- 둘 중 하나는 Rigidbody가 있다.
- Rigidbody가 있는 객체가 움직였다.
-> 충돌 객체 정보는 col.gameObject를 통해 얻는다.
Trigger event
- 충돌만 감지 (물리적 연산 X)
- 물리적으로 관통을 의미
- 주로 논리적 충돌 체크를 위해 사용
Collider의 Is Trigger의 체크 유무에따라 collsion인지 trigger인지로 나뉘어짐
trigger 발동 조건
- 두 객체 모두 collider 존재
- 둘 중 하나는 Rigidbody가 있다.
- 둘 중 하나는 Is Trigger가 체크
- 어느쪽이 움직여도 이벤트 발생
Rigidbody컴포넌트는 외부에서 힘을 가하는 함수 제공
(힘, 속도는 3차원 벡터)
- .AddForce : 힘
- .velocity : 속도 변경
'학교수업' 카테고리의 다른 글
웹개발 기초 6주차 (0) | 2021.10.11 |
---|---|
객체지향프로그래밍 6주차 (0) | 2021.10.10 |
정보보호개론 5주차 (0) | 2021.10.06 |
임베디드기초 5주차 (0) | 2021.10.06 |
사물인터넷의이해 5주차 (0) | 2021.10.05 |