やらなイカ?

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

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…

Unity Test Framework v1.3で非同期テスト

Unity公式のユニットテストレームワークであるUnity Test Frameworkパッケージのバージョン1.3がリリースされました。 v1.2はスキップされ、v2.0での実装を予定されていた非同期テストのサポートが実装されています。 アップグレード方法 Package Managerウ…

PlatformIO for CLionで #M5Stack へのuploadポートを環境変数で指定する

M5Stack Basic v2.6に搭載されているシリアル変換ICであるCH9102FのmacOSドライバ(v1.7時点)では、M5Stackが接続されているシリアルポートを明示的に指定しないでuploadしようとすると次のエラーで失敗します。 (snip) Looking for upload port... Auto-de…

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

コミックマーケット100、無事終わりました。 ご購入いただいた方々、また、スペースにお立ち寄りいただいた方々、ありがとうございました。 ありがたいことに新刊既刊とも完売してしまい*1、ご購入いただけなかった方々には申し訳ありませんでした。 既刊は…

Unity Test Framework完全攻略ガイド 第2版

Unityの標準テストフレームワークであるUnity Test Frameworkパッケージの解説本をコミックマーケット100の1日目(土曜日)西そ06b*1「いか小屋」で頒布します。 昨年の技術書典11で頒布した第1版をベースに、テストダブルやテスト技法に関するセクションな…

Unity x WebGLのテストTips

今週は、Unity 1週間ゲームジャム 第22回が開催されています。 今回のお題は「そろえる」とのことで、何かをそろえたら消えて得点が入るような振る舞いの自動テストを書きたくなる方もいるのではないでしょうか。 Unity 1週間ゲームジャムの投稿先であるフリ…

diff-pdfでPDFファイルの視覚的差分を取るGitHub Action

diff-pdfは、オープンソースのPDFファイル比較ツールです。 これをGitHub Actionsワークフローから使用するためのDockerイメージ及びActionを作りましたので紹介します。 github.com diff-pdfには、指定するオプションによって大きく2通りの用途があります。…

Unity Test Framework v2.0ファーストインプレッション

Unity公式のユニットテストレームワークであるUnity Test Frameworkのバージョン2.0がプレリリースされたので早速触ってみました。 Unity 2022.2からデフォルトバージョンに採用される予定で、現在フォーラムでフィードバックを受け付けています。 前提Unity…

Unity Automated QA攻略ガイド

UnityのUIテスト補助ライブラリであるAutomated QAパッケージの解説本を、 コミックマーケット99の2日目(金曜日)東ト38b*1「いか小屋」で頒布します。 Automated QAパッケージは、今年4月にアルファ版としてv0.2.0がリリースされた後もバージョンアップが…

メソッド分割の意義とTips

この記事は DeNA Advent Calendar 2021 16日目の記事です。 ユニットテストを書こうとしたとき、テスト対象のクラスやメソッドが大きく複雑なため断念した経験は誰しもあるのではないでしょうか。 ひとつのメソッドや関数に様々な処理・責務を持たせてしまう…

Unityにおけるインライン化

テスタビリティ*1など内部品質の文脈で、クラスやメソッドの責務を分けるべし、メソッド分割すべし、という話をよくします。 メソッド分割には、メソッド呼び出しが増えることによる実行時オーバーヘッド増加という問題があります。 これに対しては、 本当に…

カスタムRoslyn AnalyzerをUPMパッケージとして配布する

Unity 2020.2でRoslynアナライザによる静的解析を行えるようになりましたが*1、NuPkgやDLLで配布してUnityプロジェクトに導入するのはやや面倒です。 そこで、アナライザをUnity Package Manager (UPM) パッケージとして配布する方法を紹介します。アナライ…

Unity Test Framework完全攻略ガイド

[2022/8/10] コミックマーケット100で第2版を頒布します。こちらの記事を参照してください www.nowsprinting.com Unityの標準テストフレームワークであるUnity Test Frameworkパッケージ*1の解説本を技術書典11向けに上梓しました。 ギリギリ審査が通って閉…

#PLATEAU 3D都市モデルの水ぜんぶ抜く大作戦

国土交通省 Project PLATEAU で、横浜市の3D都市モデルが公開されました。 このデータを使用する際、水面にあたる部分に面が張られており使いづらかったので*1、Blenderで水面をすべて削除して、改めて水面用のメッシュを用意しました。 本記事はこの手順メ…

Unity Automated QAのRecorded Testing機能 トラブルシュート

Unity Automated QA パッケージのRecorded Testing機能を試していて遭遇したトラブルと解消方法をまとめます。 バージョンは 0.2.0-preview.3 および 0.3.0-preview.8*1 で確認しています。 Recorded Testing機能とは、UnityエディタのPlay modeでuGUIの操作…

Unity Automated QA雑感

Unity Automated QA パッケージが公開されました。 まだアルファリリース (0.2.0-preview.3) ですが、少し触ってみたメモ。 [12/26追記]v0.8.1対応の『Unity Automated QA攻略ガイド』をコミックマーケット99で頒布します。詳しくはこちらの記事を参照して…

Unity 2020.2時点のRoslyn Analyzerサポート状況まとめ

Unity 2020.2でRoslynアナライザによる静的解析が動作するようになりました。しかし、まだ色々と制限があるようなので現時点のサポート状況を検証してまとめてみました。 検証に使用したプロジェクト も公開していますので、認識違い等あれば教えていただる…

『ソフトウェア品質を高める開発者テスト アジャイル時代の実践的・効率的なテストのやり方』レビュー

昨日発売された『ソフトウェア品質を高める開発者テスト アジャイル時代の実践的・効率的なテストのやり方』、ざっくりと読んだので簡単にレビューします。 ソフトウェア品質を高める開発者テスト アジャイル時代の実践的・効率的なテストのやり方作者:高橋 …

ML-Agentsに入門するならUnity LearnのML-Agents: Penguinsがおすすめ

個人差があるとは思いますが、最初のチュートリアルとして良いサイズだと思うので(そしてUnity Learnの検索で出てこないので)紹介します。 おすすめポイントは、 ダウンロードするファイルはペンギン等のfbxのみ コードは説明付きで小分けに提示されていて…

#cluster 勉強会・イベント登壇Tips

yokohama.unity をはじめ、オンライン勉強会の会場として cluster が使われることも珍しくなくなりました。 つまり、clusterで登壇する機会も増えているということです。 clusterでの登壇には、リアル会場やZoomなどWeb会議サービスとは異なる特性があります…

UPMパッケージをunitypackage形式で配布する

Unityのエディタ拡張などは Unity Package Manager (UPM) で配布するのが便利です。 UPMのメリットとしては以下の点が挙げられます。 バージョン管理、アップデートが容易 依存関係を設定できるため、依存先もUPMであれば同梱・再配布を回避できる Assetsデ…

Blender 的なテンキー操作で視点操作できる Unityエディタ拡張

Blender 的なテンキー操作で視点操作できる Unityエディタ拡張 Blender-like SceneView Hotkeys を公開しました。 Unity 2018.3 以降で動くので VRChat SDK 向けの作業にも使えます。 3Dモデリングツール Blender の 3D Viewport では、マウス操作のほか、テ…

#yokohamaunity in #cluster 会場ができるまで

昨晩開催された『yokohama.unity 実質4回目』会場として cluster のワールドを構築・提供しました。 meetup.unity3d.jp ワールドは横浜の「大さん橋」屋上を 再現 模したもので、遠景に全天球画像、アーチ状の構造物などはフォトグラメトリで作ったハイポリ…

Unityプロジェクトのディレクトリ構成と .gitignore

Twitterで話題に上がっていたので、自分なりのやり方を。 ディレクトリ構成 Assets/下 自分で作るものはAssets/下にフォルダを作り、そこにまとめています。 Assets └── MY_PROJECT_NAME ├── Materials ├── Prefabs ├── Scenes ├── Scripts │ ├── Editor │ └…

リモート時代のモブプログラミング(モブワーク)勉強会でmob IntelliJ pluginをお披露目 #モブLOVE #モブプロ #MobProgramming #RemoteMobProgramming

リモートモブプログラミングにフォーカスした勉強会(もちろんオンライン開催)のLT募集があったので、作っているリモートモブプロ支援IntelliJ pluginの紹介をしてきました。 moblove.connpass.com 勉強会冒頭のアンケートでは、リモートモブプロをやたこと…

#yokohamaunity (cluster開催)で『Rider plugin の作りかた』をLTしてきました

yokohama.unity初のオンライン開催である「yokohama.unity ~オンラインDEハジメテユルクヤッテミル#0~」で、IntelliJ Rider plugin 開発についてのLTをしてきました。 meetup.unity3d.jp 今回は初のオンライン、clusterでの開催でした。clusterはオーディエ…

IntelliJ plugin から他のプラグインを使用する

IntelliJ (JetBrains IDE) ファミリー向けのプラグイン開発において、他のプラグイン(例えばGitを操作するための Git4Idea *1 など)や、Riderなど言語別IDEの機能を使う設定について。 基本的なことは公式ドキュメントの下記ページに載っており、それに沿…

IntelliJ plugin からのログ出力

IntelliJ (JetBrains IDE) ファミリー向けのプラグイン開発をしていて、ログ出力まわりが少々わかりにくかった*1のでメモ。 プラグインからのログ出力 プラグインからログを出力するには、 com.intellij.openapi.diagnostic.Logger を使います。 Javaの場合 …