[유니티 개발] IOS 자이로 센서 연동
안녕하세요. 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