Game/Unity

[Unity] Google Cardboard Head Tracking

nowkoes 2024. 2. 3. 15:47

VR 세팅

개요

 이전 게시글에서는 주어진 예제를 기반으로 VR 환경을 구축했었다. 이번에는 VR 개발에 필요한 최소한의 패키지만을 받아와서, 직접 VR을 개발할 수 있는 최소한의 기본 환경을 만들어보도록 하겠다.


본문

환경 세팅

 

 일단 Cardboard XR 플러그 인을 설치해야 하므로, Package Manaer에서 깃 URL을 추가해 준다.

 

https://github.com/googlevr/cardboard-xr-plugin.git

 

VR 세팅이 끝난 후 Assets 폴더의 상태

 

 그리고 해당 게시글VR 빌드 세팅 부분을 그대로 따라 하면 된다. 


카메라 설정

 

 여기가 헤드셋의 움직임을 감지하기 위해 메인 카메라에 Tracked Pose Driver 컴포넌트를 추가해줘야 한다. Google Cardbard는 머리 회전을 감지하는 기능에 초점을 맞추었기 때문에, 위치 추적 기능이 없다. 따라서 앞으로 나아가는 기능을 추가하고 싶으면, 카메라의 위치는 고정하고 다른 사물을 움직여야 한다

 

 

 예를 들어, 자동차 시뮬레이션 게임을 개발한다고 가정해 보자. 자동차가 앞으로 가는 것을 구현하려면, 자동차 객체의 방향을 바꾸는 것이 아니라, 움직임을 느낄 수 있는 객체(해당 예제에서는 Cube)의 위치를 가고자 하는 방향과 반대로 움직이게 하면 이를 구현할 수 있다. 이를 코드로 구현하면 다음과 같다.

 

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

public class MoveCube : MonoBehaviour
{
    public float moveSpeed = 5.0f; 
    public Vector3 movement = new Vector3(0, 0, -1);

    void Update()
    {
        if (Input.GetButtonDown("Fire1")) 
        {
            transform.Translate(movement * moveSpeed * Time.deltaTime);
        }
    }
}

 

 여기서는 자동차가 움직이는 것을 간단하게 화면을 '터치' 하거나, 카드보드의 상호작용 버튼을 누르는 것으로 가정하였다. 즉, 자동차가 z 축으로 움직이는 것은 큐브 입장에서 -z 축으로 움직이는 것과 같으므로, 이러한 방향으로 개발을 진행해야 한다.

반응형