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

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

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

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

Q&A

解決済

1回答

761閲覧

1つのオブジェクトに2つ以上のCircleCollider2Dを使用している場合、スクリプト上からそれらすべてを無効にする方法がわかりません

BetelPalm

総合スコア1

C#

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

0グッド

0クリップ

投稿2023/01/08 05:24

前提

Unityを触り始めて1,2週間の初心者です。

UnityのC#Scriptで、敵が倒された際に、その敵に付いている複数のCircleCollider2Dを全て無効にする処理を実装しようとしていたのですが、複数のCircleCollider2Dのうち1つしか無効化することができず困っています。

実現したいこと

・1つのオブジェクトに付いている2つ以上のCircleCollider2Dをスクリプト上から全て無効化する

発生している問題・エラーメッセージ

・複数のCircleCollider2Dのうち、1つしか無効化することができませんでした

該当のソースコード

C#

1private void OnCollisionEnter2D(Collision2D collision) 2 { 3 if(collision.gameObject.name == "player") 4 { 5 anim.SetTrigger("trgHurt"); 6 GetComponent<BoxCollider2D>().enabled = false; 7 GetComponent<CircleCollider2D>().enabled = false; 8 //GetComponent<CircleCollider2D>().enabled = false; 9 StartCoroutine("Dead"); 10 11 } 12 }

試したこと

GetComponent<CircleCollider2D>().enabled = false;

というコードを書いて複数のCircleCollider2Dを一気に無効にしようとしましたが、複数のうち1つにしか反映されませんでした。ダメもとでコードを二つにしてみたりしましたが特に意味はありませんでした。

補足情報(FW/ツールのバージョンなど)

使用しているソフト
・Unity
・MicrosoftVisualStudio2022

使用しているUnityのバージョン: 2021.3.12.12f1

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

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

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

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

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

guest

回答1

0

ベストアンサー

GetComponents<CircleCollider2D>()で全てのCircleCollider2Dを含んだ配列が取得できます。

投稿2023/01/08 08:22

fiveHundred

総合スコア9774

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

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

BetelPalm

2023/01/08 09:33

fiveHundred さん 回答ありがとうございます!教えていただいた通り GetComponents<CircleCollider2D>() を使ってみたところすべてのCircleCollider2Dを含んだ配列を取得できました! しかし、配列にして ○○.enabled = false; を使おうとしたところ、「 Component[]に"enabled"の定義が含まれておらず、型"Component[]"の最初の因数を受け付けるアクセス可能な拡張メソッド"enabled"が見つかりませんでした」というエラーがでてしまい、せっかく習得した配列をうまく使うことができませんでした… もし解決策など思いつきましたらご教授いただければ嬉しいです!
BetelPalm

2023/01/08 11:20

ありがとうございます!教えていただいたページを参考に頑張ってみます!当方の知識不足により実装完了まで続けていると長くなってしまいそうなので、一旦ベストアンサーとさせて頂き回答を締め切ろうと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問