Unity
株式会社ディー・エヌ・エー(以下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で実行できないことは公…
Unity 2020.2から制限付きながらRoslynアナライザが動作するようになり、その後、Unity 2021.1.2で実用段階に行き着いたことは以前ブロク記事で紹介しました。 www.nowsprinting.com しかし、この時点でUnityエディター上で動作しない*1アナライザがありまし…
Unity Automated QAパッケージのRecorded Playback機能は、デフォルトではuGUI操作を記録・再生します。 しかし限定的ですが「Input Systemサポート」も提供されており、以下の操作に限り動作させることができ(ると書かれてい)ます。 UnityEngine.Input(…
Unity Test Frameworkパッケージのバージョン1.3では、マニュアルの中にUnity Test Framework learning materialsというドキュメントが追加され、またそのサンプルコードがパッケージのSamplesに含まれるようになりました。 ドキュメントは、Unity Test Fram…
Unity公式のユニットテストレームワークであるUnity Test Frameworkパッケージのバージョン1.3がリリースされました。 v1.2はスキップされ、v2.0での実装を予定されていた非同期テストのサポートが実装されています。 アップグレード方法 Package Managerウ…
Unityの標準テストフレームワークであるUnity Test Frameworkパッケージの解説本をコミックマーケット100の1日目(土曜日)西そ06b*1「いか小屋」で頒布します。 昨年の技術書典11で頒布した第1版をベースに、テストダブルやテスト技法に関するセクションな…
今週は、Unity 1週間ゲームジャム 第22回が開催されています。 今回のお題は「そろえる」とのことで、何かをそろえたら消えて得点が入るような振る舞いの自動テストを書きたくなる方もいるのではないでしょうか。 Unity 1週間ゲームジャムの投稿先であるフリ…
Unity公式のユニットテストレームワークであるUnity Test Frameworkのバージョン2.0がプレリリースされたので早速触ってみました。 Unity 2022.2からデフォルトバージョンに採用される予定で、現在フォーラムでフィードバックを受け付けています。 前提Unity…
UnityのUIテスト補助ライブラリであるAutomated QAパッケージの解説本を、 コミックマーケット99の2日目(金曜日)東ト38b*1「いか小屋」で頒布します。 Automated QAパッケージは、今年4月にアルファ版としてv0.2.0がリリースされた後もバージョンアップが…
この記事は DeNA Advent Calendar 2021 16日目の記事です。 ユニットテストを書こうとしたとき、テスト対象のクラスやメソッドが大きく複雑なため断念した経験は誰しもあるのではないでしょうか。 ひとつのメソッドや関数に様々な処理・責務を持たせてしまう…
テスタビリティ*1など内部品質の文脈で、クラスやメソッドの責務を分けるべし、メソッド分割すべし、という話をよくします。 メソッド分割には、メソッド呼び出しが増えることによる実行時オーバーヘッド増加という問題があります。 これに対しては、 本当に…
Unity 2020.2でRoslynアナライザによる静的解析を行えるようになりましたが*1、NuPkgやDLLで配布してUnityプロジェクトに導入するのはやや面倒です。 そこで、アナライザをUnity Package Manager (UPM) パッケージとして配布する方法を紹介します。アナライ…