質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

0回答

424閲覧

ビルドとアプリとで挙動が違ってしまいます...

Kamihate

総合スコア15

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

1クリップ

投稿2018/12/06 02:28

iOSアプリに出力した場合にもz周り傾きによってmainCameraが移動するようにしたい!

unityを使い、iphoneの傾きをジャイロで検知して、障害物を避けるゲームを作ろうと思っています。

unity上でmainCameraに、zのRotationに合わせてx方向に移動するようにScriptを付けて設定しました。unity上でビルドして、unity remoteにてiphoneを繋ぎ、確認してみたところきちんとx方向に移動してくれました。

ただ、buildしてiPhoneにアプリとして出力し、アプリを起動してみたところ、x方向に移動してくれませんでした。

なにが原因でビルドした場合とiOS実機での動きの違いのか全くわかりません。どなたか教えていただきませんでしょうか?

発生している問題・エラーメッセージ

ビルドした場合とアプリ出力した場合とで違いが生じる

該当のソースコード

C#

1//z周り傾きによって平行移動する用 2using System.Collections; 3using System.Collections.Generic; 4using UnityEngine; 5 6public class maincameranityokusetu : MonoBehaviour { 7 8 9 public float moveSpeed = 2.0f; 10 public float moveAngleZ = 20.0f; 11 [SerializeField] public float minx = 3.0f; 12 [SerializeField] public float maxx = 3.0f; 13 public float zoffset = 0.0f; 14 15 // Use this for initialization 16 void Start() 17 { 18 zoffset = this.transform.position.z; 19 } 20 21 // Update is called once per frame 22 void Update() 23 { 24 25 // 1.カメラの傾きを取得 26 float z = this.transform.eulerAngles.z; 27 28 29 // 2.ある角度以内であれば前進させる 30 if (-90.0f < z - 360 && z - 360 < -moveAngleZ) 31 { 32 moveForward(z - 360); 33 } 34 else if (moveAngleZ <= z && z < 90.0f) 35 { 36 moveForward(z); 37 } 38 Clamp(); 39 40 } 41 42 private void moveForward(float i) 43 { 44 Vector3 direction = new Vector3(1, 0, 0).normalized * moveSpeed * i * Time.deltaTime; 45 Quaternion rotation = Quaternion.Euler(new Vector3(0, 0, -this.transform.rotation.eulerAngles.z)); 46 this.transform.Translate(rotation * direction); 47 this.transform.position = new Vector3(this.transform.position.x, this.transform.position.y, zoffset); 48 49 50 } 51 52 void Clamp() 53 { 54 Vector3 pos = this.transform.position; 55 pos.x = Mathf.Clamp(pos.x, minx, maxx); 56 this.transform.position = pos; 57 58 } 59 60 61} 62

C#

1//iphoneのジャイロセンサで傾きを検知するよう 2using System.Collections; 3using System.Collections.Generic; 4using UnityEngine; 5 6public class Iphonekatamuikenti : MonoBehaviour { 7 8 void Start() 9 { 10 Input.gyro.enabled = true; 11 } 12 13 void Update() 14 { 15 Quaternion gattitude = Input.gyro.attitude; 16 gattitude.x *= -1; 17 gattitude.y *= -1; 18 transform.localRotation = 19 Quaternion.Euler(90, 0, 0) * gattitude; 20 } 21} 22

試したこと

iphone 自身がzのRotationをジャイロで検知しているか確認してみようと思い、z周りのrotationを常にtextとして出し、ゲーム起動中に確認してみたところ、アプリ起動中もきちんとzのRotationを検知していました。

補足情報(FW/ツールのバージョンなど)

【作業環境】
Unity:2018.2.5f1
OS:MacOSMojave(iphoneはiOS 12.1)
コードエディタ:Visual Studio
Xcode ver 10.1

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問