2019年12月15日Unityエディタでテストプレイ中に見つけたバグを、Unity上からフォームに情報を入力してスクリーンショット・ログと一緒にBacklogにチケット登録するツールを作りました。Backlogに登録されたチケットプロジェクト運用に合わせて内容をカスタマイズしてもらいたいのであくまで作例ではありますが、そのまま導入しても使えると思うので導入方法を解説していきます。実装方法の紹介はQiitaに投稿していますので、カスタマイズしたい方はこちらを参考にして下さい。Qiitaこの記事は(https://qiita.com/advent-calendar/2019/unityforpro)の11日目の記事です。GitHub.Unity2018.3以上のバージョンが必須です。導入方法サンプルプロジェクトから、必要なものをコピーしてきます。csc.rspAssets直下にあるcsc.rspというファイルをプロジェクトのAssets直下にコピーします。ある場合は、ファイル内に以下の2行を追記して下さい。-r:System.Web.dll-r:System.Drawing.dllNuGetNuGetがプロジェクトに導入されていない場合は、以下のものをそれぞれ同じ階層でコピーしてきて下さい。Assets/NuGet.configAssets/packages.configAssets/PackagesフォルダAssets/Plugins/NuGetフォルダ既にNuGetを導入している場合は「Newtonsoft.Json」パッケージを導入して下さい。BacklogAPIPlugins内にあるBacklogAPIを実行するためのプラグインをコピーします。NBacklogunity-backlogこれらを導入した時にエラーが出る場合は、一度Unityを再起動して、それでもダメだったら各フォルダ内にある拡張子が「.asmdef」のファイルを削除して下さい。バグ報告ツール最後にバグ報告ツール本体(Assets/Editor/BugReporter)をコピーしてきます。これは「Editor」フォルダ内に入っていればどこにコピーしても大丈夫です。設定バグ報告ツールを動作させるための設定を行っていきます。Resources」内に設定ファイルが作成されます。BacklogAPIメニューからProjectSettingsを開き「BacklogAPI」の項目を選択して下さい。BacklogAPIの設定Backlogアプリケーション登録まずBacklogAPIの認証を行うために「Backlogアプリケーション登録ページ」のボタンをクリックしてブラウザを起動します。以下の手順に従って登録を進めて下さい。ページを開いたら「新規登録」を押します。RedirectURI特に使わないですが入力は必要なので適当な値を設定します。「http://localhost:12345」等で大丈夫です。RedirectURIアプリケーション情報デフォルトがEnglishになっているので日本語にしておきます。下までスクロールすると「この言語を削除する」があるので押します。新しく日本語で追加したら、右上の「この言語をデフォルト表示にする」にチェックを付けます。アプリケーション名、アプリケーションの説明はそれらしいものを設定して下さい。これらは認証する利用者に表示されます。サイトURLは不要です。RedirectURIとあわせて、この3つをUnity上の設定に貼り付けてください。バグ報告先のプロジェクトを指定するものです。ここを間違えてしまうと関係ないプロジェクトにバグ報告することになるので、注意して下さい。バグ報告機能はこの対象プロジェクトに参加しているユーザしか利用できません。それぞれ何を入れたらいいかはプロジェクトのホーム画面のURLを見れば分かります。Key}https://amagamina.backlog.com/projects/BUG_REPなら以下の通りです。KeyBUG_REPこちらを入力したら「スペースを開く」ボタンを押して、プロジェクトのホーム画面が開けることを確認して下さい。認証情報のキャッシュファイル認証はユーザ毎に行うので、毎回認証しなくてもいいようにプロジェクトの直下にキャッシュファイルを作成します。ファイル名は自由に変更して下さい。git管理をしている際にこのファイルが共有されてしまわないよう、gitignoreに追加して下さい。サンプルプロジェクトのgitignoreからコピーしてきても大丈夫です。Backlogbacklog_oauth2cache.json認証テスト以上の入力が終わったら「認証テスト」ボタンを押して下さい。ブラウザが起動して、以下のような画面が表示されるので「許可する」を押します。終わったらブラウザを閉じてUnityに戻って下さい。次のようなダイアログが表示されたら設定は完了です。次にProjectSettingsの「BugReport」の項目を選択して下さい。入力フォームを開いた時、プルダウンの項目で最初に選ばれる項目を指定します。Type」はバグ報告機能なので基本的にバグで問題ないかと思います。入力フォームにも表示されません。その他の項目はBacklogプロジェクトで追加されている情報に合わせて設定して下さい。発生バージョンについて他の項目は担当者がチームから外れてしまった時以外は特に変更することはないと思いますが、発生バージョンはバージョンが上がる度に更新しておかないと古いバージョンを指定してバグ報告をしてしまう可能性があります。可能であれば、ここはUnity上で設定しているアプリバージョンと連動するように作り変えておくのがベストです。(気が向いたらこの対応を入れるかもしれません)一通り入力が終わったら設定は完了です。バグ報告の方法テストプレイ中しかフォームは開けません。バグ報告」を選択します。バグ報告あとは必要な項目を入力して「バグ報告する」を押したらチケットが登録されます。気になった時に使えるものです。ブラウザを開いてBacklogのチケット検索ページで検索するのと何も変わらないですが、Backlogの検索ページは検索条件が保存されてしまうのでちょっと扱いづらいです。Unity側でURLを作れば種別をバグに絞ったりといったことがしやすいので入力フォームの中に置いておきました。発行されたチケットの整形が崩れている場合サムネイル表示ができていなかったり、ログの文字色などのフォーマットが適用されていなかったらBacklogの整形設定がMarkdownになっています。このツールでは整形をBacklog独自フォーマット前提としているため、設定の変更をお願いします。プロジェクトの基本設定から変更もし既にMarkdownをがっつり使っているのであれば、プログラム側の修正を検討して下さい。エラーが出る場合プロジェクトにカスタム属性が設定されている可能性があります。残念ながらカスタム属性への対応は容易ではありません...。サムネを追加している部分のプログラムを削除することでエラーを防げるかもしれないので、サムネイル追加の実装方法を参考に対応を検討してみて下さい。カスタム属性を設定しているだけで特に使っていないなら、カスタム属性自体の削除を検討して下さい。まとめプロジェクトメンバーが気軽にバグ報告できる環境を整えるのは、バグ修正しやすい環境を作ることになり、アプリの品質を上げることに繋がるでしょう。このバグ報告機能を活用して頂ければと思います!僕が作成したものは作例なので個々のプロジェクトに対する細かい要望には応えられませんが、どんな環境でも役立ちそうな機能であれば追加を検討するのでご連絡下さい。アマガミナブログUnityエンジニア天神いなスマートフォンゲーム会社で新作ゲーム開発のリードエンジニアをしながら個人ゲームの開発もしています。当サイトでは、UnityやC#、シェーダなどゲーム開発の技術的なことを扱ったり、自作ツールの紹介などをしています。