やらなイカ?

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

Unity

Unity x WebGLのテストTips

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

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完全攻略ガイド

Unityの標準テストフレームワークであるUnity Test Frameworkパッケージ*1の解説本を技術書典11向けに上梓しました。 ギリギリ審査が通って閉幕までに間に合いました(間に合ってない techbookfest.org BOOTHにも置いています。 ikagoya.booth.pm 内容は、Ed…

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のみ コードは説明付きで小分けに提示されていて…

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 │ └…

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

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

UWA GOTでUnityアプリのプロファイリング(iOS編)

Unity向けプロファイリングツールであるUWA GOTのv2.0.1から、iOSプラットフォームでのプロファイリングも可能になりました*1。 本記事では、iOS版の導入手順(Androidとの差分)と注意点などを紹介します。 なお、UWA GOTの概要については、過去記事を参照…

UWA GOT v2.0.2でAndroidのIL2CPP・ARM64に対応された模様

Unity向けプロファイリングツールであるUWA GOTのv2.0.2がリリースされていました*1。 追加機能として書かれているのはAndroidおよびWindowsプラットフォームでのIL2CPPビルドとAndroidプラットフォームでのARM64対応ですが、細かい使い勝手の向上も入ってい…

JetBrains ReSharper Command Line Tools 2019.3でコードインスペクションを実行する

JetBrains製のC# IDEであるRiderにあるコードインスペクション機能を、そのままコマンドラインで実行できるツールがReSharper Command Line Toolsとして提供されています。 ReSharper Command Line Toolsは、これまでWindows版しかサポートされていませんで…

JetBrains Riderでコードの複雑度を計測する

JetBrains製のC# IDEであるRiderには、様々なプラグインが提供されています。 その中から、コードの複雑度を計測するプラグインを2つ紹介します。 www.jetbrains.com サイクロマティック複雑度 サイクロマティック複雑度(cyclomatic complexity)は循環的複…

JetBrains Rider 2019.3でUnityテストのカバレッジを採取する

JetBrains製のC# IDEであるRiderには、テスト実行時にステートメントカバレッジを採取するdotCoverプラグインが提供されています。 これまで、dotCoverプラグインはUnity Test Framework*1に対応していませんでしたが、2019.3からEdit Mode tests実行時のカ…

JetBrains Rider 2019.3でUnityのPlay Mode testsを実行する

JetBrains製のC# IDEであるRiderの2019.3がリリースされました。 これまで、RiderからはUnity Test Framework*1のEdit Mode testsのみ直接実行することができましたが、2019.3からはPlay Mode testsも実行できるようになりました。 www.jetbrains.com Unity…

.NET Conf in Tokyo 2019に行ってきました #dotnetconf #dotnetconfunity

日本マイクロソフトさんで行われた、.NET Conf in Tokyo 2019 に行ってきました。 vsuc.connpass.com 午後は2部屋に分かれたうちの Room B(Unityトラック)にずっといました。 Room C+D(.NETトラック)が気になる方はハッシュタグ #dotnetconfdotnet を参…

UWA GOTでUnityアプリのプロファイリング(Android編)

UWA*1 GOT*2は、Unityアプリのプロファイリングを行なう商用ツールです。 CEDEC 2019のセッション『あなたのモバイルゲーム開発の最適化時間を数ヶ月節約する方法』で紹介されました。 セッション後にUWAのブースやメール*3で問い合わせた内容も含め、簡単な…

Roppongi.unity#5 in メルカリ@六本木ヒルズ に行ってきました #roppongiunity

メルカリさんで行われた、Roppongi.unity #5 in メルカリ@六本木ヒルズに行ってきました。 roppongiunity.connpass.com 以下、雑なメモ。スライドは拾えたものだけ。 楽しい!LWRP + 2D Light @lycoris102 speakerdeck.com 新規プロジェクトのテンプレにLWRP…

PlayFab Meetup#1 in Microsoftに行ってきました #PlayFab

日本マイクロソフトさんで行われた、PlayFab Meetup #1 in Microsoftに行ってきました。 connpass.com 以下、雑なメモ。スライドは拾えたものだけ。 Unite 振り返り - 日本マイクロソフト / 南 Unite 2019でのセッション振り返りと、+αのお話。 learning.un…

Unity Test RunnerのPlay Mode testsを実機上で実行する #UniteTokyo

9/25, 26に開催されたUnite Tokyo 2019の『Unity Test Runnerを活用して内部品質を向上しよう』というセッションの中で、テストはPlayer(Android端末など)でも実行できる旨をきちんとお伝えできていませんでした*1。 以下の質問をいただいたので、これに回…

Unite Tokyo 2019『Unity Test Runnerを活用して内部品質を向上しよう』のフォローアップ #UniteTokyo

9/25, 26に開催されたUnite Tokyo 2019 Day 2に『Unity Test Runnerを活用して内部品質を向上しよう』というタイトルで登壇させていただきました。 スライドはすでにUnity Learning Materialsで公開中。動画は後日公開される予定です。 learning.unity3d.jp …

Unity 2019.2からのUnity Test RunnerとUnity Test Framework #UniteTokyo

9/25, 26に開催されたUnite Tokyo 2019の『Unity Test Runnerを活用して内部品質を向上しよう』というセッションで、Unity Test RunnerがUnity 2019.2からpackage化されたことをお話ししました。 その際、以下の情報をいただいたので確認してみました。 2019…

Unity++ 〜ショートセッション勉強会 presented by Unity部〜 #unity_pp に行ってきました

7/20(土)に開催された『Unity++ 〜ショートセッション勉強会 presented by Unity部〜』に行ってきました。 meetup.unity3d.jp 主催は日本Androidの会Unity部さん*1、会場はGINZA SIXのユニティ・テクノロジーズ・ジャパンさん。 スライドや動画は後日ユニ…