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

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

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

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

Q&A

解決済

1回答

423閲覧

Unity Instantiateで生成したBlockを判定したい

RINJIN

総合スコア1

C#

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

0グッド

0クリップ

投稿2022/07/29 08:59

###「Instantiate」で作成したブロックが全部消えたことを判定したい

現在、Unityにてブロック崩しゲームを作成しています。
その中で自動的にBlockを一定間隔で並べるスクリプトを作成したのですが
そのスクリプトより生成された Block(clone)がすべて消えたことを判定するスクリプトを作成したいのですが
調べても解決しそうにないため 教えていただきたいです。
まだプログラムを初めて2日なので説明不足などございましたら申し訳ないです。

実現したいこと

  • 自動で生成されたBlock(clone)がすべて消えたことを確認する

該当のソースコード

C#

1★Blockが消えるコード 2〇private void OnCollisionEnter2D(Collision2D collision) 3 { 4 if (collision.gameObject.name == "ball") 5 { 6 Destroy(this.gameObject); 7 } 8 } 9} 10 11★そのBlockを複製するコード 12〇public class Block_auto_maker : MonoBehaviour 13{ 14 15 public GameObject Block; 16 private float xPos; 17 private float yPos; 18 19 // Start is called before the first frame update 20 void Start() 21 { 22 xPos = -2.5f; 23 yPos = 1f; 24 for (int j = 0; j < 1; j++) 25 { 26 27 for (int i = 0; i < 9; i++) 28 { 29 xPos += 0.5f; 30 Instantiate(Block, new Vector2(xPos, yPos), Quaternion.identity); 31 } 32 33 yPos += 0.3f; 34 xPos = -2.5f; 35 } 36 } 37 38 39★ブロックが消えたことを確認する 40〇public Block[] blocks; 41 42 private bool DestroyAllBlocks() 43 { 44 foreach (Block b in blocks) 45 { 46 if (b != null) 47 { 48 return false; 49 } 50 } 51 52 return true; 53 } 54 55 56

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

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

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

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

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

guest

回答1

0

ベストアンサー

Instantiate()の戻り値がBlock (Clone)です。
それをblocksに入れればいいでしょう。

投稿2022/07/29 09:03

fiveHundred

総合スコア9803

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問