コガネブログ

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

【Unity】Dictionary のキーに列挙型を使う時のパフォーマンスを測定

ソースコード using System; using System.Collections.Generic; using NUnit.Framework; using Unity.PerformanceTesting; // Dictionary のキーに列挙型を使用する時のパフォーマンスを測定するクラス public sealed class DictionaryEnumKeyTest { // 検…

【Unity】Dictionary のキーにタプルや構造体を使う時のパフォーマンスを測定

ソースコード using System; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using NUnit.Framework; using Unity.PerformanceTesting; // Dictionary のキーにタプルと構造体を使用する時のパフォーマンスを測定するクラス pub…

【Unity】Dictionary のキーに構造体を使う時のパフォーマンスを測定

ソースコード using System; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using NUnit.Framework; using Unity.PerformanceTesting; // Dictionary のキーに構造体を使用する時のパフォーマンスを測定するクラス public seal…

【Unity】Addressable Asset System の AddressableAssetGroup に登録されているエントリが重複していないか確認するテストコード

概要 using System.Collections.Generic; using System.Linq; using System.Reflection; using NUnit.Framework; using UnityEditor; using UnityEditor.AddressableAssets; using UnityEditor.AddressableAssets.Settings; public sealed class Addressable…

【Unity】Addressable Asset System の AddressableAssetSettings に登録されているグループが重複していないか確認するテストコード

概要 using System.Linq; using NUnit.Framework; using UnityEditor.AddressableAssets; using UnityEditor.AddressableAssets.Settings; public sealed class Addressables用テスト { private sealed class DuplicateGroupResult { private readonly strin…

【Unity】Unity Test Runner の開始終了時に呼び出されるコールバックを設定できるようにするクラス「UniTestRunnerApiCallbacks」を GitHub に公開しました

リポジトリ 使用例 using Kogane; using UnityEditor; using UnityEditor.TestTools.TestRunner.Api; using UnityEngine; public class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { // Test Runner の開始終了時に呼び出されるコー…

【Unity】TestRunnerApi の情報を JSON に変換できるようにするパッケージ「UniJsonTestRunnerApi」を GitHub に公開しました

リポジトリ 使用例 using Kogane; using UnityEditor; using UnityEditor.TestTools.TestRunner.Api; using UnityEngine; public class Callbacks : ICallbacks { public void TestStarted( ITestAdaptor test ) { // JSON 形式で ITestAdaptor の情報をログ…

【Unity】Jenkins のフリースタイルジョブで Unity Test Runner を実行するサンプル

概要 シェルスクリプト rm -f -v ${WORKSPACE}/UnityProject/*.xml "/Applications/Unity/Hub/Editor/2020.1.6f1/Unity.app/Contents/MacOS/Unity" \ -batchmode \ -runEditorTests \ -projectPath ${WORKSPACE}/UnityProject \ -logFile - Test report XMLs…

【Unity】Unity Test Runner をバッチモードで実行する時にカテゴリで絞り込みする方法

概要 Unity.exe ^ -batchmode ^ -runEditorTests ^ -projectPath "【Unity プロジェクト】" ^ -editorTestsCategories "【カテゴリ名】" ^ -editorTestsResultFile "results.xml" -editorTestsCategories でカテゴリ名を指定する using NUnit.Framework; pub…

【Unity】Unity Test Runner をバッチモードで実行する時にテスト名で絞り込みする方法

概要 Unity.exe ^ -batchmode ^ -runEditorTests ^ -projectPath "【Unity プロジェクト】" ^ -editorTestsFilter "【関数名】" ^ -editorTestsResultFile "results.xml" -editorTestsFilter で関数名(部分一致)を指定する 参考サイト様

【Unity】Unity Test Runner のウィンドウをスクリプトから開く方法

概要 using System.Reflection; using UnityEditor; internal static class Example { [MenuItem( "Tools/Example" )] private static void Hoge() { var assembly = Assembly.Load( "UnityEditor.TestRunner" ); var type = assembly.GetType( "UnityEditor…

【Unity】Unity Test Runner の終了コードを受け取る方法

概要 start /WAIT "" "Unity.exe" ^ -batchmode ^ -runEditorTests ^ -projectPath "【Unity プロジェクト】" ^ -editorTestsResultFile "results.xml" echo %ERRORLEVEL% 上記のようなコマンドを実行すると %ERRORLEVEL% で終了コードを受け取れる 0: テス…

【Unity】Unity Test Runner の開始終了を検知する方法

概要 using UnityEditor; using UnityEditor.TestTools.TestRunner.Api; using UnityEngine; [InitializeOnLoad] internal sealed class Example : ICallbacks { static Example() { var api = ScriptableObject.CreateInstance<TestRunnerApi>(); api.RegisterCallbacks( n</testrunnerapi>…

【Unity】Unity Test Runner をスクリプトから実行する方法

概要 using UnityEditor; using UnityEditor.TestTools.TestRunner.Api; using UnityEngine; internal static class Example { [MenuItem( "Tools/Run Play Mode" )] private static void RunPlayMode() { RunTest( TestMode.PlayMode ); } [MenuItem( "Tool…

【Unity】アセットバンドル名が存在するかどうか確認するテストコード

概要 using NUnit.Framework; using System.Linq; using System.Text; using UnityEditor; public static class Example { [Test] public static void CheckAssetBundleNames() { var list = AssetDatabase.GetAllAssetBundleNames(); var isExist = list.An…

【Unity】アセットバンドル名が設定されているアセットが存在するかどうか確認するテストコード

概要 using NUnit.Framework; using System.Linq; using System.Text; using UnityEditor; public static class Example { [Test] public static void CheckAssetBundleNamedAssets() { var list = AssetDatabase.GetAllAssetPaths() .Select( c => new { as…

【Unity】各プラットフォームにおいてコンパイルエラーが発生しないか確認できるテストコード

検証環境 Unity 2019.3.0f6 ソースコード 上記のスクリプトを Unity プロジェクトの Editor フォルダに追加します 使用例 using UnityEngine; public class Example : MonoBehaviour { private void Awake() { #if UNITY_ANDROID ここでコンパイルエラー #en…

【Unity】Unity Test Runner のテストをカテゴリ分けする方法

概要 using NUnit.Framework; public class Example { [Test] [Category( "ポケモン/ピカチュウ" )] public void Test1() { } [Test] [Category( "ポケモン/カイリュー" )] public void Test2() { } } Category属性を使用することで Unity Test Runner のテ…

【Unity】Unity Test Runner のテストに説明をつける方法

概要 using NUnit.Framework; [Description( "ピカチュウ" )] public class Example { [Test] [Description( "カイリュー" )] public void Test1() { } } Description 属性をクラスや関数に適用することで テストに説明をつけることができます

【Unity】Audio が無効かどうかテストするスクリプト

ソースコード

【Unity】削除済みのシーンが Scenes In Build に登録されていないかどうかテストできるコード

概要 削除済みのシーンが Scenes In Build に登録されていないかどうかテストできます

【Unity】Unity Test Runner で EditMode 用のテストスクリプトを準備する方法

方法1 Unity プロジェクトの「Editor」フォルダを右クリックして 「Create > Testing C# Test Script」を選択すると EditMode 用のテストスクリプトを準備できる 方法2 「Test Runner」ウィンドウで「Create EditMode Test Assembly Folder」を選択してから …

【Unity】2D のシーンで Skybox Material が設定されていないかどうかテストできるコード

概要 2D のシーンで Skybox Material が設定されていないかどうかテストできます

【Unity】Animator Controller の Motion が null になっていないかどうかテストできるコード

概要 Animator Controller の中のいずれかのステートの Motion が null になっていないかどうかテストできます

【Unity】Audio Listener が複数存在しないかどうかテストできるコード

概要 Unity 標準のオーディオ機能を使用しているプロジェクトで Audio Listener が1つのシーンに複数存在しないかどうかテストできます

【Unity】iOS 用のプラグインの対象プラットフォームが適切かどうかテストできるコード

概要 「Plugins」フォルダ内の「iOS」フォルダに含まれているプラグインの 対象プラットフォームに Android が設定されていないかどうかテストできます 参考サイト様

【Unity】Android 用のプラグインの対象プラットフォームが適切かどうかテストできるコード

概要 「Plugins」フォルダ内の「Android」フォルダに含まれているプラグインの 対象プラットフォームに iOS が設定されていないかどうかテストできます 参考サイト様

【Unity】2D のシーンで Global Illumination が無効になっているかどうかテストできるコード

概要 2D のシーンで Global Illumination の機能が 無効になっているかどうかテストできます 関連記事

【Unity】モバイル用のシェーダがマテリアルに設定されているかどうかテストできるコード

概要 Unity 標準の軽量なモバイルシェーダに置き換えられるシェーダが 使用されているマテリアルが存在しないかどうかテストできます 参考サイト様

【Unity】加速度センサーが無効になっているかどうかテストできるコード

概要 加速度センサーを使用しないプロジェクトにおいて 加速度センサーが無効になっているかテストできます 関連記事