コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】不正な値が設定されていないかどうかを確認できる「Sanity Checker for Unity」紹介

はじめに

「Sanity Checker for Unity」を Unity プロジェクトに導入することで
不正な値が設定されていないかどうかを確認できるようになります

使い方

using System;
using JetBrains.Annotations;
using Skaillz.SanityChecker.Attributes;
using UnityEngine;

public class SampleScript : MonoBehaviour
{
    [NotNull] public GameObject obj;

    [CheckInside] public TestClass cls;

    [NotNegative] public int x = 0;

    [GreaterThanOrEquals( 5 ), LessThan( 8 )] public int y = 6;

    [SerializeField, NotNullOrEmpty] public string z;

    [Serializable]
    public class TestClass
    {
        [NotNull] public GameObject obj2;
    }
}

例えば上記のようなスクリプトをシーンのオブジェクトにアタッチして

f:id:baba_s:20190101151543p:plain

Unity メニューの「Tools>Sanity Checker>Run Checks in Current Scenes」を押すと

f:id:baba_s:20190101151546p:plain

このように不正な値が設定されている項目が Console に出力されます

項目 内容
NotNull null ではない
NotNullOrEmpty null または空ではない
NotNegative 負の数値ではない
GreaterThan より大きい
GreaterThanOrEquals 以上
LessThan 未満
LessThanOrEquals 以下
CheckInside 入れ子になっているオブジェクトをチェック