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

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

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

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

Unity

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

Q&A

解決済

1回答

5005閲覧

ステージ上のアイテムを全て取得したら、ゴールを出現させる書き方がわからないです。

unity3dbigginer

総合スコア65

Unity3D

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

Unity

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

0グッド

0クリップ

投稿2019/05/26 06:57

##前提
ステージ上にアイテムを設置し、触れるとそのアイテムが消えます。そして、ステージ上の全てのアイテムが消えたら、ゴールを出現させる
を想定しています。

##現在
今回、アイテムは当たり判定はできており、Playerが触れたら消えます。
また、アイテムの、Mesh Rendererのチェックを外しているため、姿は見えないように工夫しています。そして、その子オブジェクトにスポットライトを設定して、アイテムがある所に、黄色いライトが照らされています。
なので、今は黄色い部分に着いたら消える仕組みになっています。

このアイテムを3つ、ステージ上に設置しています。
赤いライトは、これからつくるので、無視して構いません。(Player追従させる敵想定)

緑のライトは、これに触れるとゴールとなり、シーンを移動させます。
これもアイテムと同様に、Mesh Rendererのチェックを外しているため、物体の姿は見えません。

また、黄色のオブジェクト名はItem
赤のオブジェクト名はEnemy
緑のオブジェクト名はGoal
としています。

##不明なところ
現在、3つの黄色い光があり、全てを消すと、緑の光を出現させたいのですが、どのように書けばいいのかわかりません。
今考えている事は、
・Itemスクリプトに、「全てのアイテムが消えたら、Goalオブジェクトを出現させる」
・Goalスクリプトに、「全てのアイテムが消えたら、Goalオブジェクトを出現させる」
のどちらかで、今は前者を試していますが、詰まっています。

##現在の状況を写真で説明
イメージ説明
Itemオブジェクトは、右側に記載されています。
Playerに触れたら消えることはできています。
ただ、全てのアイテム(今回は3つのアイテム)が消えたらGoalオブジェクトを出現させる方法がわかりません。

num2にアイテムの総数
numは何も入れずに宣言します。
1つめのアイテムに触れたとき、
アイテムを一つ消したら、num2を-1し(2になる)、その値をnumに格納します(2になる)。
2つめのアイテムに触れたとき、
num2を-1し(1になる)、その値をnumに格納します(1になる)。
3つめのアイテムに触れたとき、
num2を-1し(0になる)、その値をnumに格納します(0になる)。

numが0になったら、Goalオブジェクトを出現させる
というのを考えながら書いてたんですけど、上手くいかなくて困っています。

##最後に
長文&説明不足ですみません。
追加で必要な資料などありましたら、教えてください。

ご教授よろしくお願いします。

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

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

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

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

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

nskydiving

2019/05/26 07:36

「上手くいかなくて」とは具体的にどう上手くいっていないのでしょうか? 「期待する動作」と「実際の動作」を質問欄に書いてください。 またコードは画像ではなく、<code>タグを使って提示していただいた方が良いと思います。
guest

回答1

0

ベストアンサー

実はUnity公式チュートリアルでそっくりそのまま解説されています。
玉転がしのチュートリアルですが触ったことはありますか? なければ一度目を通してみると良いかと思います。

はじめてのUnity
https://unity3d.com/jp/learn/tutorials/projects/hajiuni-jp
※ここの項目5~7あたりが参考になるかとおもいます

ざっくり解説すると、まずゲーム全体を管理するスクリプトみたいなのを作ったほうが楽です。
で、アイテムにはタグをつけておいてタグのついてるゲームオブジェクトをカウント、取得する度にそのカウントが減っていき0になったらゴールを出現させる感じです。

GameObject.FindGameObjectsWithTag("タグ名"); で同じタグがついたアイテムを全部探してこれます。

cs

1var objectCount = GameObject.FindGameObjectsWithTag("タグ名"); 2Debug.Log(objectCount.Length);

とか書いてあげればGameObject[]の配列になっているのでlengthで数はアイテムの総数ってことになります。

あとはアイテムを取得したときカウントをへらす処理を書いてあげれば良さそうです。

投稿2019/05/27 01:02

hogefugapiyo

総合スコア3302

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問