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

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

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

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

Q&A

2回答

2837閲覧

ゲームの終わらせ方について

sakazaki

総合スコア15

Unity

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

0グッド

0クリップ

投稿2015/09/21 12:14

重ねて質問させていただきます。

かなりのスローペースですが、2つのゲームができつつあります、①は木の上に実っているフルーツをクリックで落とし、地面で一定周期で歩き回っている対象物にフルーツを食べさせるというものです。
②は画面上の動物をクリックするとその動物の鳴き声がするというものです。

そこで質問なのですが、①に関しては地面にいる対象物がフルーツをすべて食べ終えたらゲームクリアの表示が、②はすべて動物の動物をクリックしたらゲームクリアの表示が出るようにしたいのですが、どのようにスクリプトを書き換えてもあげれば良いのでしょうか?

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

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

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

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

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

guest

回答2

0

そもそも、フルーツやらのオブジェクトを各ステージに何個配置するかというのは決まっていると思います。
毎回それらを動き回っている物が取得するたびに、

・配置数ー1
・個数が0<=になったら終了

という流れでよいのではないですか?

投稿2015/09/29 02:29

Jake

総合スコア289

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

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

sakazaki

2015/10/07 05:34

教えていただきありがとうございます。 数を使った判定に挑戦してみましたが、自分の理解力が追いつきません。 今現在以下のようなスクリプトを作っているのですが、そもそもどのようにスクリプトを書いていけばよいのでしょうか? もしもお時間がありましたら、教えてください。 using UnityEngine; using System.Collections; public class gamecre : MonoBehaviour { bool isCleared = false; public GameObject apple; public GameObject gameclearText; void Start() {    cw = GetComponent<Renderer> (); } void Update() { if(cw.GameObject apple < = 0) if(gameclear) { gameclearText.enabled = true; } }
Jake

2015/10/07 08:51

sakazakiさん お返事を読む限り、一度しっかりとチュートリアルなどを通してUNITYでのプログラミングに慣れたほうがよいかと思います。 まず、今回の「画面上のアイテムを全て取得したらゲームクリア」というシステムの実装ですが、それを行なうには… 1.画面に何個アイテムがあるのか管理できなければいけない   ⇒管理するためのgameObjectを作る 2.アイテムが取得されたら、↑で管理しているgameObjectに「アイテムが取得された」と伝える   ⇒各アイテムにこの機能を実装するほうが合理的ですね あとは管理オブジェクトの方で、数が0になったらどうする、とかそういう事を実装していくわけですが、今のご理解度ですと、若干難易度が高いかもしれません。 差し出がましいですが、何個かまずチュートリアルプロジェクトを作ってみて、理解度を上げてから挑戦されてはいかがでしょうか?
sakazaki

2015/10/07 13:49

ご助言いただきありがとうございます! ご指摘の通り、現在掌田さんが書かれている本を片手にやっている状態なので、勉強不足、経験不足が身にしみています。 ただ、私事で大変恐縮なのですが、日曜までにこのゲームを完成させなければなりません。 本当に申し訳ありませんが、ゲームの終わらせ方について教えて頂けないでしょうか。 宜しくお願い致します。
guest

0

まずは、各フルーツや動物が「既に食べられたか」「既に鳴いたか」を判別できるようにしてください。
bool型のメンバ変数を使うと良いでしょう。

それが住んだら、ゲームの進行状況管理用のオブジェクトを一つ作りましょう(Create Emptyで良いでしょう)
そこに、以下の様なスクリプトを付ければよいでしょう(名前は変えて良いです)。

csharp

1using UnityEngine; 2 3public class GameController : MonoBehavior { 4 bool isCleared = false; 5 6 // ここにStartメソッドで取得したコンポーネントを格納する変数を用意しておく 7 8 void Start() { 9 /* 10 全フルーツ(動物)のGameObjectからスクリプトコンポーネントを取得し、 11 メンバ変数に保存する。 12 */ 13 } 14 15 void Update() { 16 /* 17 isClearedがfalseの時のみ、以下の処理を行う 18 19 メンバ変数に保存したスクリプトコンポーネントを使用して、 20 各フルーツ(動物)が食べられたか(鳴いたか)を確認する。 21 全て鳴いていたらゲームクリアの表示をし、isClearedをtrueにする。 22 */ 23 } 24}

全フルーツ(動物)の取得はGameObject.Findメソッドを使って地道にやっても良いですが、タグ付けを上手くしておくとGameObject.FindGameObjectsWithTagメソッドで一気に取得が出来て楽です。

Unity入門/タグ

投稿2015/09/21 13:51

hy3

総合スコア594

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

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

sakazaki

2015/09/22 23:25

回答いただきありがとうございます。 今回も、自分の勉強不足で大変恐縮なのですが、まず「bool型のメンバ変数を使う」とはどのようにして行えばよいのでしょうか? 教えてください。
hy3

2015/09/23 05:41

私の回答に記載したコードにisClearedというbool型の変数があると思います。 この変数は「ゲームクリアしたか」を判別するために使用しています。 フルーツや動物についても同様に変数を用いて「既に食べられたか」「既に鳴いたか」を判別できるようにしましょう、という意味です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問