回答編集履歴

3

コードを更新したのと説明の内容を変えました。

2022/04/08 08:26

投稿

blanket
blanket

スコア295

test CHANGED
@@ -1,22 +1,26 @@
1
- ```CS
1
+ ```C#
2
2
  private void OnCollisionEnter2D(Collision2D collision)
3
3
  {
4
- Transform[] children = collision.transform.GetComponentsInChildren<Transform>();
5
-
6
- if (collision.gameObject.CompareTag("Block_B")||
4
+ if (collision.gameObject.tag == "Block_B" ||
7
- collision.gameObject.CompareTag("Block_G")||
5
+ collision.gameObject.tag == "Block_G" ||
8
- collision.gameObject.CompareTag("Block_Y")||
6
+ collision.gameObject.tag == "Block_Y" ||
9
- collision.gameObject.CompareTag("Block_R")){
7
+ collision.gameObject.tag == "Block_R")
10
- for(int i=0; i<children.Length; i++)
11
- {
8
+ {
9
+ for (int x = 0; x < width; x += 2)
10
+ {
11
+ for (int y = 0; y < height; y += 2)
12
+ {
13
+ // Listをクリア
14
+ checkZumiFieldBlocks.Clear();
12
- ///親、子を削除対象から除外
15
+ // 同じ種類が1以上だったら配列を削除
13
- ///if (i != 0&& i !=1)
16
+ if (Renketusuu(x, y, 0) > 1 && fieldBlocks[x, y] != null)
17
+ {
18
+ Debug.Log(fieldBlocks[x, y] + "_" + "連結数_R");
14
- Destroy(children[i].gameObject);
19
+ Destroy(fieldBlocks[x, y],6f);
15
- }
20
+ }
16
- }
21
+ }
22
+ }
23
+ }
17
24
  }
18
25
  ```
19
- 親オブジェクトにタグ設定して孫オジェ探索し、孫オジェをす削除
26
+ 当たり判定書き換えまた。これだと、当たったら連結しいるロックをすべて消すことができます。プレイヤーが当たったロックを起点とるのは自分で試行錯誤しやってみます。ありがとうございました。
20
- 孫にブロックの塊を入れる
21
- 地道に塊を量産して、手動で配置する。その際タイルマップを使用する。
22
- このようにコードを書き直しました。間違っていれば教えてください。

2

スクリプトの修正

2022/03/29 15:11

投稿

blanket
blanket

スコア295

test CHANGED
@@ -9,11 +9,12 @@
9
9
  collision.gameObject.CompareTag("Block_R")){
10
10
  for(int i=0; i<children.Length; i++)
11
11
  {
12
- //親、子を削除対象から除外
12
+ ///親、子を削除対象から除外
13
- if (i != 0&& i !=1)
13
+ ///if (i != 0&& i !=1)
14
14
  Destroy(children[i].gameObject);
15
15
  }
16
16
  }
17
+ }
17
18
  ```
18
19
  親オブジェクトにタグを設定して孫オブジェクトを探索し、孫オブジェクトをすべて削除
19
20
  孫にブロックの塊を入れる

1

説明を追加した。

2022/03/27 15:25

投稿

blanket
blanket

スコア295

test CHANGED
@@ -17,4 +17,5 @@
17
17
  ```
18
18
  親オブジェクトにタグを設定して孫オブジェクトを探索し、孫オブジェクトをすべて削除
19
19
  孫にブロックの塊を入れる
20
+ 地道に塊を量産して、手動で配置する。その際タイルマップを使用する。
20
21
  このようにコードを書き直しました。間違っていれば教えてください。