- 1인, 총 3일 소요
- 프로그래밍 (AR환경 구축 및 개발)
- Unity 2020.3.13f
- AR build : Galaxy S20
- 언어 : C#
- OS : Window 10
- 바닥 지형 인식
- 자동차 모델링 생성 및 조작
- 사용자 편의 기능 추가
- AR Session Origin -> AR Plane Manager의 Detection Mode를 "Horizontal"로 변경해 바닥 감지
- 감지된 바닥을 시각적으로 실시간 표현하기 위해 AR Plane Mesh Visualizer 컴포넌트가 추가된 DetectedPlane 오브젝트 생성
- ARRaycastManager.Raycast() 함수 선언, Screen 중앙 지점에서 Ray를 발사했을 때 Plane 형태의 Trackable Type이 있다면 Indicator 활성화
- ARRaycastHit 구조체 내 position과 rotation 정보를 저장한 후 Indicator의 위치와 회전 값을 조정
- 터치 입력 시 TouchPhase.Began 함수를 사용하여 오브젝트 생성
- 게임 오브젝트를 회전시키기 위해 Rotate(회전축, 회전 각도) 함수 사용, 회전 축은 자동차 기울기를 고려해 로컬 좌표(transform.up) 전달, 회전 각도로는 deltaPosition.x 값에 -1을 곱해 터치 이동방향과 회전방향 일치
- AR 카메라가 사물을 인식하는 과정에서 dml 시간 소요로 인해 입력이 없어 슬립 상태로 전환되는 경우 발생
- 디스플레이 절전 관련 Screen 클래스의 sleepTimeout 속성을 NeverSleep으로 선언하여 절전 모드 해제
- 테스트 시 색상 변경 입력값이 거리에 따라 다르게 나오는 문제 발생
- SportCar 오브젝트의 Mesh Renderer 컴포넌트에 적용된 Paint 머터리얼이 LOD Group 컴포넌트에 영향을 받고 있음을 발견
- 카메라와 자동차 간의 거리에 따라 Lod1 ~ LOD3 (3단계)의 메시와 머터리얼이 사용 중
- SportCar20_Paint_LOD01~SportCar20_Paint_LOD03까지 LOD별 오브젝트 3개에 대한 GameObject/Material/Color32를 배열 변수로 선언하여 문제 해결