관리 메뉴

caLAB

[유니티 개발] IOS 자이로 센서 연동 본문

Unity/유니티 개발

[유니티 개발] IOS 자이로 센서 연동

도이(doi) 2022. 2. 17. 11:17
728x90

안녕하세요. Doi 입니다.

휴대폰에는 자이로 센서라고 해서 물체의 회전속도인 각속도의 값을 인식하는 센서가 있습니다.

쉽게 생각하면 우리가 레이싱 게임을 할 때 휴대폰을 기울이면 그에 맞추어 자동차의 방향이 바뀌는데 이 부분이 자이로 센서를 활용하는 영역이라고 생각하면 됩니다.

 

유니티에서 휴대폰의 자이로 센서를 받아오기 위해서 기본적인 환경세팅을 해야 됩니다. 

제 휴대폰이 아이폰이기 때문에 IOS를 기반으로 자이로 센서를 받아오는 것을 실습하도록 하겠습니다.

*안드로이드의 경우 itunes 설치 이외에는 방법이 같다고 알고 있습니다. 아니면 말구...(쭈글)

환경세팅

1. USB 케이블 연결 

2. Itunes (윈도우10 64bit) 설치 -> 삽질을 하게 된 원흉

3. Unity Remote5 어플 설치 

4. 유니티 허브 ios module 설치 -> platform은 desktop이어도 상관 없음

5. Project Settings > Editor > Device > 본인 휴대폰 
*위의 설정이 제대로 되어 있지 않으면 Device 항목에 장치가 뜨지 않는다. 

 

놀랍게도. 유니티는 컴퓨터에 아이튠즈가 깔려 있지 않으면 unity remote5 연결이 안된다. 

그러므로 꼭 Itunes로 설치한 후에 프로젝트를 진행해야 된다. 그리고 연결 안될 때는 USB 포트의 문제는 아닌지 꼭 확인해봐라... 포트가 나가 있어서 인식 안되는 경우도 엄청 많더라... 그 이후에는 정말 easy easy하다.

자이로 센서 값 받기 

1. 테스트를 위해서 Cube를 하나 만들어주고 Gyro Script라는 Component를 추가해준다. (스크립트 만들기) 

2. Gyro Script의 내용을 아래와 같이 작성한다.

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

public class gyroScript : MonoBehaviour
{
    private void Start()
    {
        if (SystemInfo.supportsGyroscope)
        {
            Input.gyro.enabled = true;
            Debug.Log("system input chk");
        }
        Debug.Log(Input.gyro.enabled);
    }

    private void Update()
    {
        if (SystemInfo.supportsGyroscope)
            transform.rotation = GyroToUnity(Input.gyro.attitude);
        Debug.Log("Gyro Data : " + Input.gyro.attitude);
    }

    private Quaternion GyroToUnity(Quaternion q)
    {
        return new Quaternion(q.x, q.y, -q.z, -q.w);
    }
}

 

3. 아이폰을 컴퓨터와 usb 케이블 연결을 시키고 unity Remote5 어플을 실행시킨 후에 유니티 프로젝트의 Play 버튼을 누르면 휴대폰의 각도 값을 받아오는 것을 확인할 수 있다. 

오늘도 좋은 하루 되세요 XD

728x90
반응형
Comments