【Unity】ジャイロセンサーでスマホカメラの向きに同期する方法。つまりはARの骨格。
どうも、だらはです。
今回はジャイロセンサーでスマホカメラの向きに同期する方法を紹介したいと思います。
コピペで動作するスクリプト
早速ですがスクリプトを記載します。
以下のスクリプトをMainCameraにアタッチして使用してください。
◆ジャイロセンサーでスマホカメラの向きに同期するスクリプト(PlayerCtrl.cs)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerCtrl : MonoBehaviour
{
private Quaternion attitude;
private void Start()
{
Input.gyro.enabled = true;
}
private void Update()
{
attitude = Input.gyro.attitude;
attitude.x *= -1;
attitude.y *= -1;
Quaternion sub = Quaternion.Euler(90, 0, 0);
transform.rotation = sub * attitude;
}
private void OnGUI()
{
var angles = attitude.eulerAngles;
var rect1 = new Rect(10, 10, 400, 30);
GUI.Label(rect1, "X: " + angles.x);
rect1.x += 100;
GUI.HorizontalSlider(rect1, angles.x, 0, 360);
var rect2 = new Rect(10, 40, 400, 30);
GUI.Label(rect2, "Y: " + angles.y);
rect2.x += 100;
GUI.HorizontalSlider(rect2, angles.y, 0, 360);
var rect3 = new Rect(10, 70, 400, 30);
GUI.Label(rect3, "Z: " + angles.z);
rect3.x += 100;
GUI.HorizontalSlider(rect3, angles.z, 0, 360);
}
}
スマホでしか動作を確認できないので、申し訳ないのですが実行結果は無しという事でご容赦ください。。
肝心の処理内容についてですが、多分知ってもふ〜んで終わると思いますし、よく分からない理論出てくるしでメリットは少ないと思います、、ので詳細は割愛!
最後に
いかがでしたでしょうか。
今回はスクリプトにジャイロセンサーの角度も表示してみました。
角度表示が不要の方はOnGUI関数を削除して下さい。
あくまで表示のための処理です。
さあ、今回はもう伝えることが無いので短いですが、、ドロンです!
以上、だらはでした。
ディスカッション
コメント一覧
まだ、コメントがありません