Unity
Unity 6 のマニュアルを見ていたら、Roslyn Analyzer についての機能追加があったので紹介します。 docs.unity3d.com Microsoft.CodeAnalysis.Csharp 4.3 アナライザおよびコードジェネレーターをビルドするときに使用する Microsoft.CodeAnalysis.Csharp の…
先日リリースされたUnity 6.3から、UI Toolkit(旧UIElements)を使ったUIのテストをサポートするUI Test Frameworkパッケージ(com.unity.ui.test-framework)が使えるようになりました。 docs.unity3d.com UI Toolkitは徐々に存在感を増しながらも、テスタ…
Unity Test Framework でUIを操作するテストを書くときに便利なライブラリ UI Test Helper パッケージのバージョン 1.0.0 をリリースしました。 元々モンキーテスト用のライブラリ(旧称 Monkey Test Helper)として開発していましたが、モンキーに限らずUI…
CEDECはじめゲーム領域でもテスト自動化の事例紹介が増えましたが、従来の手動テストを自動テストに置き換えるアプローチが紹介されることが多く*1、ROIが高く小規模なタイトルであっても取り組める開発者テストの事例・情報は少ないのが現状です。 そんな中…
最近は Claude Code 中心に使っていて、Unityプロジェクト(といってもゲームでなくUPMパッケージ開発が多い)でもそこそこ安定するワークフローが固まってきました。 一例として紹介します。 目的 紹介するワークフローの目的は次の2点です。 できるだけ自…
株式会社ディー・エヌ・エー(以下DeNA)が公開しているオープンソースのUnity向けオートパイロットフレームワーク Anjin(あんじん)に関する記事・リソースのまとめです。随時更新予定。 github.com DeNA公式 swet.dena.com swet.dena.com メディア gamema…
Googleの提供するマルチモーダルLLM Gemini を利用して、ゲームプレイの自動テストの合否判定を画像(スクリーンショット)ベースで行なう方法を紹介します。 これまでも、Anjin などのオートパイロットフレームワークを利用することで規定のシナリオに沿っ…
株式会社ディー・エヌ・エー(以下DeNA)が公開しているオープンソースのUnity向けオートパイロットフレームワーク Anjin(あんじん)は、シナリオ終了時に動作するReporterを設定できます。 ビルトインではJUnit形式のテストレポートを出力する JUnitXmlRep…
EditorConfig は、異なるIDE間でもコーディングスタイルや静的解析の設定を共有できる機構です。 JetBrains Riderをはじめ、多くのIDE/ エディタでサポートされています。 本稿では、筆者の使用している設定を紹介します。 Roslynの.editorconfig 元にしてい…
Unity上でオブジェクトベースのモンキーテストを実行できる Monkey Test Helper パッケージ*1の v0.15.0 では、いくつか破壊的変更が入りました*2。 そのマイグレーションについて解説します。 Monkey Test Helper は、オートパイロットフレームワーク Anjin…
Unity上でオブジェクトベースのモンキーテストを実行できる Monkey Test Helper パッケージ*1のトラブルシュート資料を和訳しました。 対応バージョンは 0.14.0 です。 Monkey Test Helper は、オートパイロットフレームワーク Anjin の UGUIMonkeyAgent の…
株式会社ディー・エヌ・エー(以下DeNA)が公開しているオープンソースのUnity向けオートパイロットフレームワークAnjin(あんじん)を紹介する同人誌を、コミックマーケット105の2日目(月曜)西う47b「いか小屋」で頒布します。 企画当初は「必要なことはR…
Unity Advent Calendar 2024 シリーズ2、9日目の記事です。 いつの間にかUnityに買収され、名前が Unity Version Control となった Plastic SCM。 Unityエディターからでも、フルクライアントからでもリポジトリを操作できます。 しかし、やっぱりRiderから…
Anjin v1.8.0がリリースされました。大きめのマイナーチェンジ()なので、変更内容を紹介します。 本バージョンでは主に、可用性を広げる機能が追加されています。 github.com Anjinパッケージ(com.dena.anjin)は、株式会社ディー・エヌ・エーが開発・OSSと…
Unity Test Framework でテストを書くときに便利なライブラリ Test Helper パッケージのバージョン 1.0.0 をリリースしました*1。 github.com Test Helperパッケージは、Unity Test FrameworkおよびNUnit 3の属性(attribute)、Comparer、制約(constraint…
Unity 6以降で利用できる Multiplayer Play Mode (以下MPPM)パッケージを使うことで、Unityエディターに加え最大3つのVirtual Playerを起動してマルチプレイ対応ゲームの動作確認を簡単に行えるようになりました。 とはいえ、複数のVirtual Playerウィンド…
Anjin v1.3で追加された機能を使って、スマートフォンゲームによくあるアウトゲームのチュートリアル(次に押せるボタンが限定される系)を自動で突破するオートパイロット設定の方法を紹介します。 Anjinパッケージのインストール Anjinパッケージ(com.den…
Unity製プロジェクトにおいて、(ユニットテストでなく)UIを操作して動作を確認するテストを書くことがあります。 uGUIコンポーネントの操作に関しては『Unityバイブル R5夏号』の SECTION 06「ゲームプレイの自動テスト」の中で「アウトゲームのテスト」と…
GitHub Copilotはそのまま使っても便利ですが、その特性を活かす共同作業の形として「ペアプロTDD」がお勧めです。 実際にCopilotとのペアプロTDDで「ローグライクRPG」を開発していく過程を紹介する同人誌を、 コミックマーケット103の2日目(日曜)東U44b…
本記事はUnity Advent Calendar 2023 シリーズ2 21日目の記事です。 UnityでNuGet Galleryに公開されている.NET向けパッケージ(以下NuGetパッケージ)を使う場合、nugetコマンドでは管理できないためパッケージ(依存パッケージもすべて)を自分でダウンロ…
Unity Test Framework および NUnit では、テストコードに付与できるさまざまな属性(attribute)が提供されています。 また拡張ポイントであるインターフェイスを実装することで、プロジェクト独自のカスタム属性を定義してテストコードで使うこともできま…
Unityプロジェクトのバージョン管理にGitHubを使用している場合、GitHub ActionsワークフローでWebGLビルドを行ない、そのままGitHub Pagesに公開する方法を紹介します。 GitHub Pagesは、GitHubリポジトリに紐づく静的コンテンツをホスティングできる機能で…
8月29日に発売される『Unityバイブル R5夏号』の予約受付中です。Amazonに書影も出ました。 Unityバイブル R5夏号作者:室星 亮太,細田 翔,山本 剛史,小林 慶祐,長谷川 孝二,遠藤 大介,矢部 喜久,kakunpc,notargs,角 真宇ボーンデジタルAmazon 鈍器とか質量兵…
PlayModeWindowは、Unity 2022.2で追加されたクラスです。 従来、UnityエディターのGameビューをスクリプトから操作するにはリフレクションによる非公開APIの使用が必要でした。 Unity 2022.2からは、PlayModeWindowクラスの静的メソッドで操作できます。 Pl…
本記事は、拙著『Unity Test Framework完全攻略ガイド 統合テスト編』の付録Bから抜粋したものです。 バッチモードとは バッチモードとは、Unityエディターをコマンドラインから起動するときに -batchmode オプションを付けることでヘッドレス動作するモード…
Unityの標準テストフレームワークであるUnity Test Frameworkパッケージによる統合テスト(高結合度テスト)の解説本を技術書典14で頒布しています。 想定読者 UnityでC#スクリプトを書けるレベルのソフトウェアエンジニア(プログラマー)を想定しています…
JetBrains Rider/ReSharperの提供するコードインスペクションに "Namespace does not correspond to file location" があります。 名前空間がディレクトリ階層と一致していることを検査するものですが、Unityプロジェクトの場合デフォルトでは期待どおりの結…
自作UPM (Unity Package Manager)パッケージをGitHub Actions上でテストするためのワークフローが確立できたので紹介します。 前提とするのは、リポジトリのルートがパッケージのルートディレクトリである(package.jsonがある)構成です。 Unityプロジェ…
Unity公式のユニットテストレームワークであるUnity Test Frameworkパッケージのバージョン1.3では、非同期テスト(以下Asyncテスト)がサポートされました。 改めて、できること/ できないことを確認してまとめました。 できること 非同期(async)メソッド…
Unityの標準テストフレームワークであるUnity Test Frameworkパッケージでは、非同期のテストをコルーチン様式で書くことのできる UnityTest 属性が提供されています。 この UnityTest 属性にはいくつか制限事項があり、WebGL Playerで実行できないことは公…