Awesome
UniCommonTestRunner
Unity Test Runner で実行できる汎用的なテストを 20 個以上まとめた Unity プロジェクト
バージョン
- Unity 2018.3.7f1
使い方
Unity メニューの「Window > General > Test Runner」を選択して表示される
「Test Runner」ウィンドウからテストを実行することができます
テストに失敗した場合は、該当するシーンやゲームオブジェクトの名前が出力されます
Unity メニューの「Tools > UniCommonTestRunner」から
現在のシーンを対象にテストを実行することもできます
実行できるテストの種類
加速度センサーが無効になっているか
加速度センサーを使用しないプロジェクトにおいて
加速度センサーが無効になっているかテストできます
Android 用のプラグインのプラットフォームが適切か
「Plugins」フォルダ内の「Android」フォルダに含まれているプラグインの
対象プラットフォームに iOS が設定されていないかどうかテストできます
- 参考サイト様
Animator Controller の Motion が null になっていないか
Animator Controller の中のいずれかのステートの Motion が
null になっていないかどうかテストできます
Audio Listener が存在しないか
CRI のようなサウンドミドルウェアを使用しているプロジェクトで
Audio Listener が使用されていないかどうかテストできます
Audio Listener が複数存在しないか
Unity 標準のオーディオ機能を使用しているプロジェクトで
Audio Listener が1つのシーンに複数存在しないかどうかテストできます
2D のカメラのパラメータが統一されているか
2D のプロジェクトにおいてすべてのシーンの
カメラのパラメータが統一されているかどうかテストできます
Canvas にカメラが設定されているか
Render Mode が「Screen Space - Camera」や「World Space」になっている Canvas に
カメラが設定されているかどうかテストできます
透明な UI オブジェクトの<br />Cull Transparent Mesh がオンになっているか
表示する必要のない透明な UI オブジェクトの Canvas Renderer の
Cull Transparent Mesh がオンになっているかどうかテストできます
Canvas Scaler のパラメータが統一されているか
すべてのシーンの Canvas Scaler の解像度の設定が
統一されているかどうかテストできます
DisallowMultipleComponent 属性が適用されている<br />コンポーネントが複数アタッチされていないか
using UnityEngine;
[DisallowMultipleComponent]
public class Example : MonoBehaviour
{
}
DisallowMultipleComponent 属性が適用されているコンポーネントが
1つのゲームオブジェクトに複数アタッチされていないかどうかテストできます
EventSystem の Drag Threshold が統一されているか
すべてのシーンの EventSystem の Drag Threshold の値が
統一されているかどうかテストできます
(シーンによって ScrollRect の操作性が相違していないか確認できます)
2D のシーンで GI が無効になっているか
2D のシーンでグローバルイルミネーションの機能が
無効になっているかどうかテストできます
- 関連記事
iOS 用のプラグインのプラットフォームが適切か
「Plugins」フォルダ内の「iOS」フォルダに含まれているプラグインの
対象プラットフォームに Android が設定されていないかどうかテストできます
モバイル用のシェーダがマテリアルに設定されているか
Unity 標準の軽量なモバイルシェーダに置き換えられるシェーダが
使用されているマテリアルが存在しないかどうかテストできます
Missing Prefab になっているオブジェクトが存在しないか
生成元のプレハブが削除されたゲームオブジェクトが
存在しないかどうかテストできます
Missing になっている参照が存在しないか
存在しないアセットやオブジェクトの参照が設定されている
パラメータが存在しないかどうかテストできます
Missing Script が存在しないか
存在しないスクリプトや名前が正しくないスクリプトがアタッチされている
ゲームオブジェクトが存在しないかどうかテストできます
Odin の Required 属性が適用されている変数に<br />参照が設定されているか
using Sirenix.OdinInspector;
using UnityEngine;
public class Example : MonoBehaviour
{
[Required] public GameObject go;
}
Odin の Required 属性が適用されている変数に
参照が設定されているかどうかテストできます
OnlyOneInScene 属性が適用されている<br />コンポーネントがシーンに 1つだけかどうか
using UnityEngine;
[OnlyOneInScene]
public class Example : MonoBehaviour
{
}
OnlyOneInScene 属性が適用されているコンポーネントが
シーンに1つしか存在しないかどうかテストできます
RectTransform の Position が整数になっているか
RectTransform の Position に浮動小数点以下が設定されており
画像がボヤケて表示されていないかどうかテストできます
RectTransform の Scale が整数になっているか
RectTransform の Scale に浮動小数点以下が設定されており
画像がボヤケて表示されていないかどうかテストできます
TextMeshProUGUI の Raycast Target がオフになっているか
クリックできる必要のない TextMeshProUGUI オブジェクトの
Raycast Target がオフになっているかどうかテストできます
UI.Text の Raycast Target がオフになっているか
クリックできる必要のない UI.Text オブジェクトの
Raycast Target がオフになっているかどうかテストできます
- 関連記事
補足
「UniCommonTestRunner」は、あくまでも
汎用的に使えそうなテストをまとめただけのプロジェクトであり、
一部のテストはそのままだと使えない、意図した結果にならないことが想定されます
(例えば CRI を使用していることを前提としているテストが含まれています)
「UniCommonTestRunner」を使用する場合は
意図した結果にならないテストは修正や削除していただければと思います