やらなイカ?

たぶん、iOS/Androidアプリの開発・テスト関係。

#C105 ありがとうございました

コミックマーケット105、無事終わりました。 ご購入いただいた方々、また、スペースにお立ち寄りいただいた方々、準備会やインフラの方々、本当にありがとうございました。 新刊は電子・物理ともBOOTHで販売しております。 新刊は折を見て(遅くとも次のイベ…

Anjin非公式ファンブック

株式会社ディー・エヌ・エー(以下DeNA)が公開しているオープンソースのUnity向けオートパイロットフレームワークAnjin(あんじん)を紹介する同人誌を、コミックマーケット105の2日目(月曜)西う47b「いか小屋」で頒布します。 企画当初は「必要なことはR…

Unity Version Control (Plastic SCM) を JetBrains Rider から操作する

Unity Advent Calendar 2024 シリーズ2、9日目の記事です。 いつの間にかUnityに買収され、名前が Unity Version Control となった Plastic SCM。 Unityエディターからでも、フルクライアントからでもリポジトリを操作できます。 しかし、やっぱりRiderから…

Anjin v1.8.0 リリース

Anjin v1.8.0がリリースされました。大きめのマイナーチェンジ()なので、変更内容を紹介します。 本バージョンでは主に、可用性を広げる機能が追加されています。 github.com Anjinパッケージ(com.dena.anjin)は、株式会社ディー・エヌ・エーが開発・OSSと…

Test Helper パッケージ v1.0.0 リリース

Unity Test Framework でテストを書くときに便利なライブラリ Test Helper パッケージのバージョン 1.0.0 をリリースしました*1。 github.com Test Helperパッケージは、Unity Test FrameworkおよびNUnit 3の属性(attribute)、Comparer、制約(constraint…

Unity Multiplayer Play Mode (MPPM) のVirtual PlayerをAnjinで自動プレイさせてみた

Unity 6以降で利用できる Multiplayer Play Mode (以下MPPM)パッケージを使うことで、Unityエディターに加え最大3つのVirtual Playerを起動してマルチプレイ対応ゲームの動作確認を簡単に行えるようになりました。 とはいえ、複数のVirtual Playerウィンド…

メンテナンス不要でチュートリアルを突破するAnjinのオートパイロット設定

Anjin v1.3で追加された機能を使って、スマートフォンゲームによくあるアウトゲームのチュートリアル(次に押せるボタンが限定される系)を自動で突破するオートパイロット設定の方法を紹介します。 Anjinパッケージのインストール Anjinパッケージ(com.den…

UIテスト向けのGameObject検索API

Unity製プロジェクトにおいて、(ユニットテストでなく)UIを操作して動作を確認するテストを書くことがあります。 uGUIコンポーネントの操作に関しては『Unityバイブル R5夏号』の SECTION 06「ゲームプレイの自動テスト」の中で「アウトゲームのテスト」と…

#C103 ありがとうございました

コミックマーケット103、無事終わりました。 ご購入いただいた方々、また、スペースにお立ち寄りいただいた方々、準備会やインフラの方々、そしてお手伝いいただいたきみかさん、本当にありがとうございました。 毎回楽しいのですけれど、今回特に楽しくて(…

GitHub CopilotとのペアプロTDDでつくるローグライクRPG

GitHub Copilotはそのまま使っても便利ですが、その特性を活かす共同作業の形として「ペアプロTDD」がお勧めです。 実際にCopilotとのペアプロTDDで「ローグライクRPG」を開発していく過程を紹介する同人誌を、 コミックマーケット103の2日目(日曜)東U44b…

Unity NuGetとNuGetForUnity

本記事はUnity Advent Calendar 2023 シリーズ2 21日目の記事です。 UnityでNuGet Galleryに公開されている.NET向けパッケージ(以下NuGetパッケージ)を使う場合、nugetコマンドでは管理できないためパッケージ(依存パッケージもすべて)を自分でダウンロ…

自動テストにおける「目視確認」をポジティブにこなす魔法

本記事はソフトウェアテスト Advent Calendar 2023 2日目の記事です。 自動テストを書いていて、テストコードで検証目的を達成できず「目視で確認」とするのは負けた気持ちになりますし、テストを実行するオペレーターやコントリビューターのモチベーション…

Unity Test Frameworkで利用できるカスタム属性の実装方法

Unity Test Framework および NUnit では、テストコードに付与できるさまざまな属性(attribute)が提供されています。 また拡張ポイントであるインターフェイスを実装することで、プロジェクト独自のカスタム属性を定義してテストコードで使うこともできま…

Unity製ゲームをWebGLビルドしてGitHub Pagesに公開するワークフロー

Unityプロジェクトのバージョン管理にGitHubを使用している場合、GitHub ActionsワークフローでWebGLビルドを行ない、そのままGitHub Pagesに公開する方法を紹介します。 GitHub Pagesは、GitHubリポジトリに紐づく静的コンテンツをホスティングできる機能で…

#C102 ありがとうございました

コミックマーケット102、無事終わりました。 ご購入いただいた方々、また、スペースにお立ち寄りいただいた方々、ありがとうございました。 頒布した書籍の詳細・フォローアップは次の記事を参照してください。 www.nowsprinting.com www.nowsprinting.com …

テスト自動化で大切なことはTAROMANが教えてくれた

テスト自動化のノウハウ・ベストプラクティスを岡本太郎の言葉で紐解く、そんな同人誌をコミックマーケット102の2日目(日曜)西お40b「いか小屋」で頒布します。 想定読者 テスト自動化エンジニア及びSET 自動テストの導入を検討しているプロジェクトのオー…

Unityバイブル R5夏号

8月29日に発売される『Unityバイブル R5夏号』の予約受付中です。Amazonに書影も出ました。 Unityバイブル R5夏号作者:室星 亮太,細田 翔,山本 剛史,小林 慶祐,長谷川 孝二,遠藤 大介,矢部 喜久,kakunpc,notargs,角 真宇ボーンデジタルAmazon 鈍器とか質量兵…

PlayModeWindowでGameビューの解像度を指定する

PlayModeWindowは、Unity 2022.2で追加されたクラスです。 従来、UnityエディターのGameビューをスクリプトから操作するにはリフレクションによる非公開APIの使用が必要でした。 Unity 2022.2からは、PlayModeWindowクラスの静的メソッドで操作できます。 Pl…

バッチモードでUnityを実行するときの制限事項と回避方法

本記事は、拙著『Unity Test Framework完全攻略ガイド 統合テスト編』の付録Bから抜粋したものです。 バッチモードとは バッチモードとは、Unityエディターをコマンドラインから起動するときに -batchmode オプションを付けることでヘッドレス動作するモード…

疾走するめ

当ブログおよびサークル「いか小屋」のアイコンをリニューアルしました! 題して「疾走するめ(dashing surume)」。 デザインおよび一枚絵は『わかるイカ』の、あんまりひどい(@hidoianmari)さんにお願いしました。 さすがのイカリテラシーで、こだわり*1…

技術書典14(オフライン会場)ありがとうございました #技術書典

技術書典14のオフライン会場、無事終わりました。 ご購入いただいた方々、また、スペースにお立ち寄りいただいた方々、ありがとうございました。 来場者2,100人とのこと。すごい。 #技術書典 14おつかれさまでした!2100人もの方にオフライン会場まで足を運…

Unity Test Framework完全攻略ガイド 統合テスト編

Unityの標準テストフレームワークであるUnity Test Frameworkパッケージによる統合テスト(高結合度テスト)の解説本を技術書典14で頒布しています。 想定読者 UnityでC#スクリプトを書けるレベルのソフトウェアエンジニア(プログラマー)を想定しています…

JetBrains Rider/ReSharperのNamespace does not correspond to file locationインスペクションをUnityプロジェクトで期待どおり診断させる

JetBrains Rider/ReSharperの提供するコードインスペクションに "Namespace does not correspond to file location" があります。 名前空間がディレクトリ階層と一致していることを検査するものですが、Unityプロジェクトの場合デフォルトでは期待どおりの結…

UPMパッケージのテストワークフロー事例

自作UPM (Unity Package Manager)パッケージをGitHub Actions上でテストするためのワークフローが確立できたので紹介します。 前提とするのは、リポジトリのルートがパッケージのルートディレクトリである(package.jsonがある)構成です。 Unityプロジェ…

Unity Test Frameworkの非同期テストで できること/ できないこと

Unity公式のユニットテストレームワークであるUnity Test Frameworkパッケージのバージョン1.3では、非同期テスト(以下Asyncテスト)がサポートされました。 改めて、できること/ できないことを確認してまとめました。 できること 非同期(async)メソッド…

UnityTestがWebGL Playerで実行できるようになっていた

Unityの標準テストフレームワークであるUnity Test Frameworkパッケージでは、非同期のテストをコルーチン様式で書くことのできる UnityTest 属性が提供されています。 この UnityTest 属性にはいくつか制限事項があり、WebGL Playerで実行できないことは公…

#C101 ありがとうございました

コミックマーケット101、無事終わりました。 ご購入いただいた方々、また、スペースにお立ち寄りいただいた方々、ありがとうございました。 『Unity Test Framework完全攻略ガイド 第2版』は、BOOTHおよび技術書典オンラインマーケットで電子版を頒布してい…

Unity 2021.2未満でも動作するRoslyn Analyzerプロジェクト

Unity 2020.2から制限付きながらRoslynアナライザが動作するようになり、その後、Unity 2021.1.2で実用段階に行き着いたことは以前ブロク記事で紹介しました。 www.nowsprinting.com しかし、この時点でUnityエディター上で動作しない*1アナライザがありまし…

Unity Automated QAのInput Systemサポートによる自動テスト

Unity Automated QAパッケージのRecorded Playback機能は、デフォルトではuGUI操作を記録・再生します。 しかし限定的ですが「Input Systemサポート」も提供されており、以下の操作に限り動作させることができ(ると書かれてい)ます。 UnityEngine.Input(…

Unity Test Framework learning materialsをやってみた

Unity Test Frameworkパッケージのバージョン1.3では、マニュアルの中にUnity Test Framework learning materialsというドキュメントが追加され、またそのサンプルコードがパッケージのSamplesに含まれるようになりました。 ドキュメントは、Unity Test Fram…