こんにちは、Unityエンジニアのオオバです。
オブジェクトの設定が正しいかどうかをチェックする方法を考えていて、見た目から分かるアプローチをやってみます。
お題は「SpriteRendererのSprite設定がnullのオブジェクトを分かりやすくする」です。
👉DOTweenの教科書を読んでUnityアニメーションをプログラミングしてみよう!
Hierarchy、Projectそれぞれ処理を書く
- EditorApplication.hierarchyWindowItemOnGUI
- EditorApplication.projectWindowItemOnGUI
EditorApplicationの hierarchyWindowItemOnGUI
、projectWindowItemOnGUI
メソッドでそれぞれEditor拡張を書いていきます。
Hierarchyビューでの見え方
![子階層のSpriteRendererのSpriteが1つでも未設定だったらリストを赤くするUnityのEditor拡張_0](https://cdn-ak.f.st-hatena.com/images/fotolife/e/esakun/20190805/20190805035011.png#592__228)
Projectビューでの見え方
![子階層のSpriteRendererのSpriteが1つでも未設定だったらリストを赤くするUnityのEditor拡張_1](https://cdn-ak.f.st-hatena.com/images/fotolife/e/esakun/20190805/20190805035039.png#564__204)
Hierarchyビュー、ProjectビューそれぞれSpriteが外れていたら、うっすらですが背景が赤くなるようにしています。
全ソースはこちら
SpriteMissingChecker.cs · GitHub
最後に
static bool IsValid(GameObject go)
{
var arr = go.GetComponentsInChildren();
return arr.Any(x => x.sprite == null);
}
IsValidの部分の条件を書き換えれば、使い回せます。
プロダクトの規模が大きくなればなるほどバリデーションやチェックツールは必要になってきます。
そんなときの手段の一つとして手元においておこうと思います。
![](https://cdn-ak.f.st-hatena.com/images/fotolife/e/esakun/20190805/20190805033400.png#562.0__158.0)
この記事が気に入ったらフォローしよう
オススメ記事
検証環境
- Unity2019.1.9f1