【背景」
Unity初心者です。
何かに諸突した際、自分(Prefab)の全ての子オブジェクト(Prefab)に対しRigidbodyをアタッチする処理を書いていたのですが、とあるコードでエラーが発生し困っています。
【問題】
C#
1private void OnCollisionEnter(Collision collision) 2{ 3 var children = GetComponentInChildren<Transform>(); 4 foreach(Transform child in children) 5 { 6 child.GetComponent<GameObject>().AddComponent<Rigidbody>(); 7 } 8}
上記のコードの「child.GetComponent<GameObject>」で以下のエラーがでてしまいます。
エラー文 :
error
1MissingComponentException: There is no 'GameObject' attached to the "Purple_mino" game object, but a script is trying to access it. 2You probably need to add a GameObject to the game object "Purple_mino". Or your script needs to check if the component is attached before using it.
調べてみたところ、C#child.GetComponent<GameObject>()
の部分でNullが返ってきているようです。
何が原因なのでしょうか?
【推測】
・TransformからはGameObjectは取得できない
・「GetComponentsInChildren」を使用した際はGameObjectは取得できない
・PrefabにAddComponentはできない。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/08/04 03:51