子オブジェクトの保持していないコンポーネントの取得について
親オブジェクトに以下のようなスクリプトを置いて、子オブジェクトのRendererコンポーネントを取得したいと思いました。
しかし、子オブジェクトすべてがRendererコンポーネントを保持しているわけではないので、MissingComponentExceptionが出てしまいました。
void GetMaterial(GameObject gameobject)
{
if (gameObject.GetComponent<Renderer>()?.material != null)
{
_materials.Add(gameObject.GetComponent<Renderer>().material);
}
foreach (Transform child in gameObject.GetComponents<Transform>())
{
GetMaterial(child.gameObject);
}
}
どのようにしたらRendererコンポーネントを持っているオブジェクトだけを対象とし、エラーの出ない実装にできるでしょうか。
回答よろしくお願いします。