こんにちは、Unityエンジニアのオオバです。

オブジェクトの設定が正しいかどうかをチェックする方法を考えていて、見た目から分かるアプローチをやってみます。

お題は「SpriteRendererのSprite設定がnullのオブジェクトを分かりやすくする」です。

👉DOTweenの教科書を読んでUnityアニメーションをプログラミングしてみよう!

Hierarchy、Projectそれぞれ処理を書く

EditorApplicationの hierarchyWindowItemOnGUIprojectWindowItemOnGUI メソッドでそれぞれEditor拡張を書いていきます。

Hierarchyビューでの見え方

子階層のSpriteRendererのSpriteが1つでも未設定だったらリストを赤くするUnityのEditor拡張_0

Projectビューでの見え方

子階層のSpriteRendererのSpriteが1つでも未設定だったらリストを赤くするUnityのEditor拡張_1

Hierarchyビュー、ProjectビューそれぞれSpriteが外れていたら、うっすらですが背景が赤くなるようにしています。

全ソースはこちら
SpriteMissingChecker.cs · GitHub

最後に

static bool IsValid(GameObject go)  
{
    var arr = go.GetComponentsInChildren();  
    return arr.Any(x => x.sprite == null);  
}

IsValidの部分の条件を書き換えれば、使い回せます。
プロダクトの規模が大きくなればなるほどバリデーションやチェックツールは必要になってきます。
そんなときの手段の一つとして手元においておこうと思います。

オススメ記事
検証環境