[Unity] 子要素の特定のComponentを全て取得する方法: GetComponentsInChildren

Unity

子要素の特定のComponentを全て所得するには、GetComponentsInChildren()が便利です。

ソースコード

以下の例では、子要素に適用されている全てのSpriteRendererを取得し、maskInteractionを変更しています。

var spriteRenderers = GetComponentsInChildren<SpriteRenderer>();
foreach (var spriteRenderer in spriteRenderers)
{
    spriteRenderer.maskInteraction = SpriteMaskInteraction.VisibleInsideMask;
}

子要素だけでなく、このスクリプトが適用されているGameObjectも対象になります。

余談

PSD ImporterでPSBファイルを読み込んで生成したGameObjectのSpriteRendererの設定を変更するには、このように子要素の各SpriteRendererに対して変更する必要がありました。

広告