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

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

ただいまの
回答率

90.62%

  • Unity

    3791questions

    Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。

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

受付中

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 1,038

sakazaki

score 9


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

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

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


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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

0

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

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

using UnityEngine;

public class GameController : MonoBehavior {
    bool isCleared = false;

    // ここにStartメソッドで取得したコンポーネントを格納する変数を用意しておく

    void Start() {
        /*
        全フルーツ(動物)のGameObjectからスクリプトコンポーネントを取得し、
        メンバ変数に保存する。
        */
    }

    void Update() {
        /*
        isClearedがfalseの時のみ、以下の処理を行う

        メンバ変数に保存したスクリプトコンポーネントを使用して、
        各フルーツ(動物)が食べられたか(鳴いたか)を確認する。
        全て鳴いていたらゲームクリアの表示をし、isClearedをtrueにする。
        */
    }
}

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

Unity入門/タグ

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/09/23 08:25

    回答いただきありがとうございます。

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

    キャンセル

  • 2015/09/23 14:41

    私の回答に記載したコードにisClearedというbool型の変数があると思います。
    この変数は「ゲームクリアしたか」を判別するために使用しています。

    フルーツや動物についても同様に変数を用いて「既に食べられたか」「既に鳴いたか」を判別できるようにしましょう、という意味です。

    キャンセル

0

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

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/10/07 14: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;


    }
    }

    キャンセル

  • 2015/10/07 17:51

    sakazakiさん

    お返事を読む限り、一度しっかりとチュートリアルなどを通してUNITYでのプログラミングに慣れたほうがよいかと思います。

    まず、今回の「画面上のアイテムを全て取得したらゲームクリア」というシステムの実装ですが、それを行なうには…

    1.画面に何個アイテムがあるのか管理できなければいけない
      ⇒管理するためのgameObjectを作る
    2.アイテムが取得されたら、↑で管理しているgameObjectに「アイテムが取得された」と伝える
      ⇒各アイテムにこの機能を実装するほうが合理的ですね

    あとは管理オブジェクトの方で、数が0になったらどうする、とかそういう事を実装していくわけですが、今のご理解度ですと、若干難易度が高いかもしれません。
    差し出がましいですが、何個かまずチュートリアルプロジェクトを作ってみて、理解度を上げてから挑戦されてはいかがでしょうか?

    キャンセル

  • 2015/10/07 22:49

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

    キャンセル

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

  • ただいまの回答率 90.62%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Unity

    3791questions

    Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。