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

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

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

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

ビルド

ソースコードを単体で実行可能なソフトウェアへ変換する過程をビルド(build)と呼びます

Unity

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

Q&A

1回答

13615閲覧

unityでビルドし実機でテストした際にオブジェクトが表示されない

sii

総合スコア8

C#

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

ビルド

ソースコードを単体で実行可能なソフトウェアへ変換する過程をビルド(build)と呼びます

Unity

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

0グッド

0クリップ

投稿2016/03/14 16:38

編集2016/03/16 09:32

お世話になります。こちらで初めての質問になります。
unityのゲームビュー、またunityRemote4では正しく動いているのですがビルドし実機でテストした際に表示されないオブジェクトがあります。

Instantiate(prefab, new Vector3(transform.position.x, transform.position.y, transform.position.z), Quaternion.identity);

オブジェクト(発射台)から丸のオブジェクト(弾)を一定の条件に達したら発射するようにしています。
発射台のほうはちゃんと表示されてますが弾がでてきません。

原因がわかるかたいらっしゃれば教えていただきたいです。よろしくお願いします

追記

コメントありがとうございます。説明不足で申し訳ありません。
まず実機として使用したのはAndroid4.2とAndroid5.1でどちらでも上記のような状態です。
上記のプログラムは発射台に使用しているスクリプトの一部で、prefabで生成しようとしているのが丸のオブジェクト(弾)になります。ファイルを1文字づつ読み込み1の場合弾が発射されるようにしてます。使用しているオブジェクトは発射台(cube)が4つです。

よろしくお願いします。

追記2
C#
using UnityEngine;
using System.Collections;

public class Fall : MonoBehaviour {

float speed = -0.15f; void Start () { Destroy(this.gameObject, 1.5f); } void Update () { transform.Translate(0, speed, 0); if(transform.position.y >= -4.3 && transform.position.y <= -3.7 && Input.GetKey(KeyCode.E)){ Destroy(this.gameObject); } }

}

↑こちらは丸のオブジェクトで使用しているスクリプトです

using UnityEngine;
using System.Collections;

public class Filing : MonoBehaviour {

public GameObject prefab; int[] LismData = new int[100]; int cnt = 0; int first = 0; private int _frames = 0; private float _time = 0; public int Data(int cnt) { int i; if (first == 0) { System.IO.StreamReader sr = new System.IO.StreamReader("C:\\Users\\s1257115\\Documents\\LismGame\\Lism1.txt", System.Text.Encoding.GetEncoding("shift_jis")); //内容をすべて読み込む for (i = 0; i <= 80; i++) { LismData[i] = sr.Read(); } //閉じる sr.Close(); first = 1; } return LismData[cnt]; } // Use this for initialization void Start () { Application.targetFrameRate = 5; //★フレーム回数の指定 } // Update is called once per frame void Update () { ++_frames; _time += Time.deltaTime; if (_time >= 1.0f) { cnt++; if (Data(cnt) == 1 ) { Instantiate(prefab, new Vector3(transform.position.x, transform.position.y, transform.position.z), Quaternion.identity); } _time = 0; _frames = 0; } }

}
↑こちらが発射台で使用するスクリプトです

発射台でprefabを生成し、生成されたprefabの動きは上のほうのプログラムで指定するというようにしています。

それとシェーダについてあまりよく理解していないのですが使用しているのはUnlit/Tranparentです

よろしくお願いします

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2016/03/15 01:33

丸のオブジェクトがビルド対象に入ってないか? 丸のオブジェクトのシェーダーが、対象実機に対応してないか? 生成しようとしているprefabはどのような物なのか? など、書かれている情報だけだと、様々な可能性を絞り込むのに情報が足りません。 Projectビューから、構成とオブジェクトの種類 Inspectorビューから、オブジェクトのパラメータ BuildSettingsからプラットフォーム等、情報を追加すると答えやすくなると思います。
guest

回答1

0

先に問題の切り分けをしてはどうでしょうか?
実機で表示されないのは
・動的に生成しているからなのか
・シェーダーが対象の実機環境に対応していないからなのか
例えば丸のオブジェクトというのを動的生成ではなく発射台同様に静的配置して
表示されるのなら動的生成の流れに不備がある事が特定できそうです
仮にそこが原因だとすれば、インスタンス化した物がオブジェクトとしてシーン
に配置されていないというオチかもしれません。
抽出されているのが部分的すぎてサッパリ判断つきませんが、例えば

c#

1GameObject obj = Instantiate(prefabObj, new Vector3(0,0,0), Quaternion.identity) as GameObject; 2obj.transform.parent = canvasObj.transform; 3 4```みたいな事はちゃんとされていますか?

投稿2016/03/16 04:38

HiroshiWatanabe

総合スコア2160

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

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

sii

2016/03/16 09:22

回答ありがとうございます。 静的配置でも表示されませんでした。質問にソースコード追加したのでもしよろしければ再びアドバイスお願いします。
HiroshiWatanabe

2016/03/16 10:11

発射台のオブジェクトにアタッチしている Filing に public GameObject prefab; がありますが、UnityのInspector画面でちゃんとその prefab に 「丸のオブジェクト」のprafabを設定してありますか? ソースみただけではそこが確認できないので… Unity上で静的に配置してみても表示されないという事なので そこに指定してある物自体が既に表示できない物、という事だとすると それを使ってプログラムで複製をいくら作っても表示されるハズがない という理屈になります。 丸のオブジェクトをプログラムを使わずにシーンに静的配置するという 実験が本当に正しく実施されていて、それでも表示できていないのなら プログラムの前にまずはその丸のオブジェクトのデータ自体に問題が 無いか確認する方が先だと思います。 丸のオブジェクトが静的に表示できてるのが確認できたのにプログラム で追加すると表示できない、という事が確認できたのなら、インスタンス 化したオブジェクトが視界内にいるかという点に注意してみるのがいいでしょう。 例えば確実に見えている(表示できている)オブジェクトの子として丸のオブジェクト をぶら下げて見えているオブジェクトの位置に丸のオブジェクトの配置するとか。 あとは…何をしたら何処まで処理が動いているかをログに出力して追いかける というのもしてみてはどうでしょうか? どこまで処理が到達しているのか、何故そこに処理が来ないのか、 その時の各変数の状態はどうなのか、気になる情報をログに出して確認して追いかける という作業をされるのをおすすめします。
sii

2016/03/16 16:16

詳しくありがとうございます。Inspector画面でprefabは設定されています。 プログラムを使用せずに静的配置でき実機で表示できました。 また上のプログラム(fall)をつかった丸のオブジェクトをそのまま配置したところそちらも正しく表示されました。 しかしfilingに丸のオブジェクトをprefabに設定するとやはり表示されません。 そのためfiringのプログラムに問題があり、prefabがうまく生成されてないのではないかと考えたのですがどうもうまくいきません… 一つ前の回答でいただいたソースコードのような処理は行っていないのでこれが問題かと思っているのですが canvasObjの部分にはどのようなものをあてはめるべきなのでしょうか? 検討ちがいの質問をしていたらすみません。 よろしくお願いします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問