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

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

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

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

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

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

Q&A

0回答

1492閲覧

ビルド後のUnityVRでスクリプト通りに動かない

HashiVR

総合スコア5

C#

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

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

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

0グッド

0クリップ

投稿2019/09/20 01:34

編集2019/09/20 01:39

今私はUnityでVRを作っています。Androidから見ることができるやつです。cardboardを使っています。最初の一歩として下を向くと前進するものを作ろうとしています。

下を向くと前進するスクリプトを書き、Unity内ではplayからは問題なく動きました。問題は、ビルドした後のことです。androidから見ると、スクリプトに書いた内容(下を向くと前進するというもの)が映像に反映されないのです。

ソースコード

C#

1using UnityEngine; 2using System.Collections; 3public class GameScript : MonoBehaviour { public Camera mainCamera; 4public float moveSpeed = 2.0f; 5public float moveAngleX = 20.0f; 6float yOffset; // Use this for initialization 7 8void Start () { 9  yOffset = mainCamera.transform.position.y; 10} 11 12 // Update is called once per frame 13void Update () {  14  float x = mainCamera.transform.eulerAngles.x; Debug.Log (x); 15  if (moveAngleX < x && x < 90.0f) { moveFoward (); } 16} 17 18private void moveFoward() { 19Vector3 direction = new Vector3 (mainCamera.transform.forward.x, 0, mainCamera.transform.forward.z).normalized * moveSpeed * Time.deltaTime; 20Quaternion rotation = Quaternion.Euler (new Vector3 (0, -mainCamera.transform.rotation.eulerAngles.y, 0)); 21mainCamera.transform.Translate (rotation * direction); mainCamera.transform.position = new Vector3(mainCamera.transform.position.x,yOffset, mainCamera.transform.position.z); } }

いろいろネットで調べてみましたが、それっぽいサイトはなく、スクリプトのスペルミスも見た範囲では、ありませんでした。

バージョン
Unity 2019.1.14f1

制作中に参考にさせていただいたサイト
VRのビルド方法

下を向くと前進するスクリプトの書き方

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

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

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

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

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

izmktr

2019/09/20 02:27

Unity内ではplayからは問題なく動きました。とありますが、UnityのPlayでは前進したのですか?
HashiVR

2019/09/20 06:47

最初からカメラに角度をつければ前進しました。 Playの状態で視点の上下はできませんでしたが…
sakura_hana

2019/09/22 01:21

「x」が条件を満たしていないのでは? 何らかの方法で「x」を画面上に表示して(uGUI使うでもOnGUIでも。Debug.Logしてるからログには出ていると思うけど)確認してみてください。
HashiVR

2019/09/22 14:51

やってみます
HashiVR

2019/09/25 08:30

遅れてすみません ログを見ると 0 UnityEngine.Debug:Log(Object) GameScript:Update() (at Assets/GameScript.cs:24) と出ており、問題はなさそうです。
sakura_hana

2019/09/25 10:31

moveAngleXが20だとすると、 「xが20より大きく、90未満の時にmoveFowardが実行される」ので、 xが0であれば条件を満たさず前に進まないことになります。
HashiVR

2019/09/25 12:21

Unity上ではRotation.Xの値を[20<X<90]に変えればPlayで前進するんですが、問題はそれがAndroid端末上で下を向いても前進しないということなんです...
sakura_hana

2019/09/26 01:52

だから実機上でx(mainCamera.transform.eulerAngles.x)の値を見て、これが想定通りになっているか確認してください、ということでした。 実機上で下を向いてもxが0のままなら、「下を向いてもmainCamera.transform.eulerAnglesが変更されていない=メインカメラが動いていない」と言えるので、問題はそちらにあると分かります。
HashiVR

2019/09/28 16:43

具体的にどう直せばいいのでしょうか…?
sakura_hana

2019/09/29 06:28 編集

「下を向いたらメインカメラの角度が変わる」ようにすればいいんじゃないでしょうか(cardboard使ったこと無いのでよく分かりませんが、正しく設定出来ていれば動くはずです)。 なので根本的な質問なのですが、「(実機で)顔の向きを変えたら見えている方向が変わる(カメラが回転する)」ようになっているのでしょうか? なっていないなら、そもそもVRとして動作していない(VR機能が動作していない、MainCameraが視点と連動していない等)。 なっているなら、MainCameraではないカメラをVR用に使用していると思われます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問