Android端末でVR開発を行っています。
360度パノラマ画像を見まわすため、ジャイロセンサーに対応させたいと思っております。
そこでUnity内のMain Cameraにジャイロセンサーに対応させるスクリプトを紐づけてビルドを行ってみました。
しかしうまく動きませんでした。
端末の問題かと思いiOSでも行うと、こちらはうまく動きました。
AndoridとiOSで記述すべき内容が違うのでしょうか。それともAndroid端末のほうで何か設定がいるのでしょうか。
宜しくお願いします。
〇使用端末
・Sony Expesia XZ 601SO
・iPhone8
(ちなみに、Android端末のほうはgyrocenserの対応はしています。他のアプリで確認しました。)
〇使用スクリプト
以下の2種類のスクリプトで試してみました。
上のスクリプトはiOSでも動きませんでした。
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class gyro : MonoBehaviour 6{ 7 // Start is called before the first frame update 8 void Start() 9 { 10 Input.gyro.enabled = true; 11 } 12 13 // Update is called once per frame 14 private void UpdateGyroData() 15 { 16 double pitch = Input.gyro.rotationRate.x; 17 double yaw = Input.gyro.rotationRate.y; 18 double roll = Input.gyro.rotationRate.z; 19 } 20} 21
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class jairo_camera : MonoBehaviour 6 7 {// 自信のTransform, 毎フレーム参照すると無駄なので保持する 8 Transform m_transform; 9 10 // 調整値 11 readonly Quaternion _BASE_ROTATION = Quaternion.Euler(90, 0, 0); 12 13 void Start() 14 { 15 // サポートするかの確認 16 if (!SystemInfo.supportsGyroscope) 17 { 18 Destroy(this); 19 return; 20 } 21 22 m_transform = transform; 23 } 24 25 // Update is called once per frame 26 void Update() 27 { 28 // ジャイロの値を獲得する 29 Quaternion gyro = Input.gyro.attitude; 30 31 // 自信の回転をジャイロを元に調整して設定する 32 m_transform.localRotation = _BASE_ROTATION * (new Quaternion(-gyro.x, -gyro.y, gyro.z, gyro.w)); 33 } 34 35} 36
回答1件
あなたの回答
tips
プレビュー