質問編集履歴

2

iOSでの実装でも試してみたため

2020/11/24 11:03

投稿

1nanana
1nanana

スコア15

test CHANGED
File without changes
test CHANGED
@@ -27,6 +27,8 @@
27
27
  〇使用スクリプト
28
28
 
29
29
  以下の2種類のスクリプトで試してみました。
30
+
31
+ 上のスクリプトはiOSでも動きませんでした。
30
32
 
31
33
 
32
34
 

1

内容がわかりにくかったため変更しました

2020/11/24 11:03

投稿

1nanana
1nanana

スコア15

test CHANGED
@@ -1 +1 @@
1
- Android端末でビルドするとジャイロセンサーが反応しない(GoogleVR)
1
+ Android端末でビルドするとジャイロセンサーが反応しない
test CHANGED
@@ -1,9 +1,155 @@
1
- Gvr(Google VR) SDK利用しVRアプリを作成しています。
1
+ Android端末でVR開発行っています。
2
2
 
3
- シーン内にGvrEditorEmulatorいれているので、ジャイロセンサー対応の端末にビルドするとジャイロを認識して動てくれる認識しいたのですが端末にビルドすると全く動きません。PC上で実行ボタンを起こして確認(Alt+マウス移動)するのはうまくいきます。なにがだめなのでしょうか、、、説明がわかづらいかもしれせんがよろしくお願い致します。
3
+ 360度パノラマ画像見まわすため、ジャイロセンサー対応させたいと思っります。
4
4
 
5
- ![イメージ説明](b17a164d9256a9d9ea4e5978f1871f5b.png)
5
+ そこでUnity内のMain Cameraにジャイロセンサーに対応させるスクリプトを紐づけてビルドを行ってみました。
6
+
7
+ しかしうまく動きませんでした。
8
+
9
+ 端末の問題かと思いiOSでも行うと、こちらはうまく動きました。
10
+
11
+ AndoridとiOSで記述すべき内容が違うのでしょうか。それともAndroid端末のほうで何か設定がいるのでしょうか。
12
+
13
+ 宜しくお願いします。
6
14
 
7
15
 
8
16
 
17
+ 〇使用端末
18
+
19
+ ・Sony Expesia XZ 601SO
20
+
21
+ ・iPhone8
22
+
9
- ちなみに、端末はジャイロセンサーに対応しています。
23
+ ちなみに、Android端末のほうgyrocenserの対応しています。他のアプリで確認しました。)
24
+
25
+
26
+
27
+ 〇使用スクリプト
28
+
29
+ 以下の2種類のスクリプトで試してみました。
30
+
31
+
32
+
33
+ ```C#
34
+
35
+ using System.Collections;
36
+
37
+ using System.Collections.Generic;
38
+
39
+ using UnityEngine;
40
+
41
+
42
+
43
+ public class gyro : MonoBehaviour
44
+
45
+ {
46
+
47
+ // Start is called before the first frame update
48
+
49
+ void Start()
50
+
51
+ {
52
+
53
+ Input.gyro.enabled = true;
54
+
55
+ }
56
+
57
+
58
+
59
+ // Update is called once per frame
60
+
61
+ private void UpdateGyroData()
62
+
63
+ {
64
+
65
+ double pitch = Input.gyro.rotationRate.x;
66
+
67
+ double yaw = Input.gyro.rotationRate.y;
68
+
69
+ double roll = Input.gyro.rotationRate.z;
70
+
71
+ }
72
+
73
+ }
74
+
75
+
76
+
77
+ ```
78
+
79
+
80
+
81
+ ```C#
82
+
83
+ using System.Collections;
84
+
85
+ using System.Collections.Generic;
86
+
87
+ using UnityEngine;
88
+
89
+
90
+
91
+ public class jairo_camera : MonoBehaviour
92
+
93
+
94
+
95
+ {// 自信のTransform, 毎フレーム参照すると無駄なので保持する
96
+
97
+ Transform m_transform;
98
+
99
+
100
+
101
+ // 調整値
102
+
103
+ readonly Quaternion _BASE_ROTATION = Quaternion.Euler(90, 0, 0);
104
+
105
+
106
+
107
+ void Start()
108
+
109
+ {
110
+
111
+ // サポートするかの確認
112
+
113
+ if (!SystemInfo.supportsGyroscope)
114
+
115
+ {
116
+
117
+ Destroy(this);
118
+
119
+ return;
120
+
121
+ }
122
+
123
+
124
+
125
+ m_transform = transform;
126
+
127
+ }
128
+
129
+
130
+
131
+ // Update is called once per frame
132
+
133
+ void Update()
134
+
135
+ {
136
+
137
+ // ジャイロの値を獲得する
138
+
139
+ Quaternion gyro = Input.gyro.attitude;
140
+
141
+
142
+
143
+ // 自信の回転をジャイロを元に調整して設定する
144
+
145
+ m_transform.localRotation = _BASE_ROTATION * (new Quaternion(-gyro.x, -gyro.y, gyro.z, gyro.w));
146
+
147
+ }
148
+
149
+
150
+
151
+ }
152
+
153
+
154
+
155
+ ```