はじめに
「Mooble」を Unity プロジェクトに導入することで
シーンやプレハブの静的解析を行うことができるようになります
使い方
Unity メニューの「Mooble>Static Analysis」から
シーンとプレハブどちらの静的解析を行うのかを選択します
すると「Mooble」ウィンドウが表示されて静的解析の結果を閲覧できます
1つのゲームオブジェクトに同じコンポーネントが複数アタッチされていたり
アタッチされているコンポーネントが無効化されていたり
アタッチされているコンポーネントが見つからなかったり
コンポーネントのプロパティが設定されていなかったりすると
それが静的解析の結果に表示されるようになります
拡張
Rule<>
を継承したクラスや IViolation
を実装したクラスを定義することで
独自の静的解析のルールを追加することもできます
設定
{ "PrefabLocations": [ "Assets/Prefabs" ], "Rules": [ { "Name": "NoDuplicateComponents", "ViolationLevel": "Warning", "ViolationScope": "Both", "Exclusions": [] }, { "Name": "NoMissingComponents", "ViolationLevel": "Error", "ViolationScope": "Both", "Exclusions": [] }, { "Name": "NoMissingObjectReferences", "ViolationLevel": "Warning", "ViolationScope": "Both", "Exclusions": [] }, { "Name": "NoInactiveBehaviours", "ViolationLevel": "Warning", "ViolationScope": "Both", "Exclusions": [ "UnityEngine.Animator, UnityEngine", "UnityEngine.FlareLayer, UnityEngine" ] }, { "Name": "NoImageWithMissingSprite", "ViolationLevel": "Error", "ViolationScope": "Both", "Exclusions": [] } ] }
「moobleconfig.json」に静的解析の設定を記述することができます
コマンドライン実行
Unity.exe -quit -batchmode -projectPath "【Unity プロジェクトのパス】" -executeMethod "Mooble.StaticAnalysis.CLI.RunPrefabAnalysis" "Assets\Prefabs\0001.prefab" -logFile "result.txt"
上記のようにコマンドラインから静的解析を行うこともできます