コガネブログ

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

【Unity】GameObject や ScriptableObject で None や Missing になっている変数を検索できる「DTValidator」紹介

はじめに

「DTValidator」を Unity プロジェクトに導入することで
GameObject や ScriptableObject で
None や Missing になっている変数を検索できるようになります

使い方

f:id:baba_s:20180415190345p:plain

例えば、上記のようにゲームオブジェクトの変数が None になっている時に、

f:id:baba_s:20180415190323p:plain

Unity メニューの「Window>DTValidator Window」を選択して

f:id:baba_s:20180415190332p:plain

表示されたウィンドウで「Validate!」ボタンを押すと

f:id:baba_s:20180415190459p:plain

None や Missing になっている変数を持つ
GameObject や ScriptableObject がリストアップされます

using UnityEngine;

public class Example : MonoBehaviour
{
    [DTValidator.Optional]
    public GameObject m_prefab;
}

None や Missing になっていても問題ない変数があれば、
DTValidator.Optional 属性を付与すると、その変数は検索の対象外になります

Test Runner

using DTValidator;
using NUnit.Framework;

public static class ValidationTests
{
    [Test]
    public static void ValidateSavedScriptableObjects()
    {
        var errors = ValidationUtil.ValidateAllSavedScriptableObjects( true );
        Assert.That( errors, Is.Empty );
    }

    [Test]
    public static void ValidateGameObjectsInResources()
    {
        var errors = ValidationUtil.ValidateAllGameObjectsInResources( true );
        Assert.That( errors, Is.Empty );
    }

    [Test]
    public static void ValidateSavedScenes()
    {
        var errors = ValidationUtil.ValidateAllGameObjectsInSavedScenes( true );
        Assert.That( errors, Is.Empty );
    }

    [Test]
    public static void ValidateBuildScenes()
    {
        var errors = ValidationUtil.ValidateAllGameObjectsInBuildSettingScenes( true );
        Assert.That( errors, Is.Empty );
    }
}

上記のようなコードを記述することで、

f:id:baba_s:20180415191945p:plain

Unity メニューの「Window>Test Runner」からテストを実行できるようになります