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

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

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

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

Unity

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

Q&A

解決済

2回答

10159閲覧

ステージ選択画面からの各ステージへの遷移

退会済みユーザー

退会済みユーザー

総合スコア0

Unity3D

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

Unity

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

0グッド

0クリップ

投稿2018/04/29 07:14

Unityを最近触り始めた、プログラミング初心者です。
Unityで縦スクロールのシューティングゲームを作りたいと思っています。
iOS、Androidで動作するものをリリースまでしたいと思っています。
作りたいもののイメージは、雑魚的をガンガン倒していき、最後にボスが登場し、倒せばステージクリアでステージ選択画面へ戻り、次のステージに挑戦することが出来るといったオーソドックスな縦シューになります。

入門書を一冊読んだ後、以下のサイトのDanmaku Ⅰ~Ⅲをやり終えました。
https://codegenius.org/open/courses

上記の学習サイトではStage1のシーンにあるCanvasを丸ごとPrefab化し、Stage2のシーンに丸々貼り付けて、その調子でStage3、4、5と同じように新たにシーンを作り、同じようにやってみよう!といった雰囲気だったのですが、世に出回っているUnity製スマホシューティングも大体同じようなやり方なのでしょうか?
もし上のサイトを参考にオリジナルのものを作るとすれば、普通のボリュームでも、数十シーンは作成しますし、本格的なものを作るとなれば何百シーンと作成することになります。

完全な推測でしかないのですが、登場する敵機、ボスの体力、発射される弾など情報を、外部のテキストファイルやcsvファイルなどからいろいろ引っ張って管理してるのかなぁーなどと思っております。
個人的にはシーンを10個や20個と独立したステージシーンをたくさん作り、ステージ選択画面に大量に配置したボタンをタップすることでそれぞれのステージへと遷移するやり方しか術を知らないので、出来ればこれで出来たらと思っていますが、遷移後に暗くならないようにAUTO GENERATEのチェック外す設定を全てのシーンに行って、なんかその設定フォルダとかもたくさん出来ますよね。

シーン遷移はStage1、Stage2、Stage3、Stage4、Stage5のように決まった名前にすれば、

C#

1public void OnStageButtonClicked (int stageNo) { 2SceneManager.LoadScene ("Stage" + stageNo); 3}

とすることで簡単にそれぞれ違うシーンへと遷移することが出来るのですが、
心なしか、この手段がパフォーマンスや容量に支障をきたしそうな雰囲気です。。。(初心者で知らないことが多いため、最適化に関してはもっと他に気をつけることがあるとは思いますが。)

他に似たような質問がされてないか調べた結果が以下のページです。
https://teratail.com/questions/104201
ゲームジャンルや用途は不明ですが、シーンを100個も用意している。
https://teratail.com/questions/99625
回答者様が、stageNoという引数でシーン遷移先を分ける処理を採用している。

なので、もしかしたら自分のやり方でも特に問題ないのかな?とは思ってはいます。

別にシーンをいくら作っても、アプリの容量が増えたり、動作やロード時間などが重くなったりしないのであれば、一つ一つ確実にたくさんのステージシーンを用意するのもアリだとは思ったのですが、実際のところどうなのでしょうか?
その箇所の修正や更新を行う場合に大変な作業量になるだけなら、開発者側の問題なのでまだいいのですが、それが原因で1アプリ何ギガと容量が増えたり、シーン遷移が発生する度に膨大なロード時間が発生したりすれば、ユーザが快適に遊べなくなってしまいます。
特にどっちでも外面があまり変わらないのであれば、学習の難易度や管理のしやすさなどを考慮して好きな方を選択できますが・・・。

今回自分が疑問に思った部分以外でも何かアドバイスなど貰えると嬉しいです。
ある程度やり方をしっかり決めた上で開発に取り組みたいと思っているので、質問が多くて申し訳ありませんが、よろしくお願いします。

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

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

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

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

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

guest

回答2

0

ベストアンサー

同じプレハブの流用であれば、シーン1とシーン2と・・・シーンnで繰り返し使っても、それによってデータサイズがn倍になってしまうようなことはありません。

たしかにデータの持ち方にはさまざまな方法があると思いますが、Canvasのデータが原因でゲームが重くなったり遅くなったりすることは多くないと思います。

初心者ということであれば、まずは基本的な(プレハブを使う)方法でゲームを作ってみて、もしもCanvasデータが処理のボトルネックになっているようであれば、そのときにあらためて見直す、というくらいの考え方でいいのではないでしょうか。

投稿2018/04/29 10:51

negitama

総合スコア943

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

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

退会済みユーザー

退会済みユーザー

2018/04/30 04:18

ありがとうございました!今考えている方法でやっていこうと思います!
guest

0

経験が浅く参考にならないかもですが、シーン遷移の考え方は問題ないと感じました!

Unity公式の2DシューティングのWaveを見てみると楽しめるかもしれません!

https://unity3d.com/jp/learn/tutorials/projects/2d-shooting-game-jp

投稿2018/04/29 07:58

PoH

総合スコア14

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

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

退会済みユーザー

退会済みユーザー

2018/04/30 04:20

Unity公式のチュートリアルは知らなかったので、試してみたいと思います!ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問