次の方法で共有


Unity アプリを使用した DevOps

最新のプラットフォーム向けのアプリを開発するには、コードを記述するだけでなく、多くのアクティビティが必要です。 DevOps (開発 + 運用) と呼ばれるこれらのアクティビティは、アプリの完全なライフ サイクルに及び、作業の計画と追跡、コードの設計と実装、ソース コード リポジトリの管理、ビルドの実行、継続的インテグレーションとデプロイの管理、テスト (単体テストと UI テストを含む)、開発環境と運用環境の両方でさまざまな形式の診断を実行し、テレメトリとユーザーの動作を通じてリアルタイムでアプリのパフォーマンスとユーザーの動作を監視します。解析学。

Visual Studio は、Azure DevOps Services および Team Foundation Server と共に、さまざまな DevOps 機能を提供します。 これらの多くは、ゲームや Unity で作成されたイマーシブ グラフィカル アプリなど、クロスプラットフォーム プロジェクトに適用できます。特に、スクリプト言語として C# を使用する場合です。 ただし、Unity には独自の開発環境とランタイム エンジンがあるため、Visual Studio に組み込まれている他の種類のプロジェクトと同様に、多くの DevOps 機能は適用されません。

次の表は、Visual Studio の DevOps 機能が Unity を使用する場合にどのように適用されるか、適用されないかを示しています。 機能自体の詳細については、リンクされたドキュメントを参照してください。

アジャイル ツール

リファレンス リンク: アジャイル ツールとアジャイル プロジェクト管理 について (Azure Boards または TFS (Team Explorer Everywhere を含む) を使用)

一般的なコメント: すべての計画および追跡機能は、プロジェクトの種類とコーディング言語に依存しません。

特徴 Unity でサポートされる その他のコメント
バックログとスプリントを管理する はい
作業の追跡 はい
チームルームでの共同作業 はい
カンバンボード はい
進行状況を報告して視覚化する はい

モデリング

リファレンス リンク: アーキテクチャの分析とモデリング

一般的なコメント: これらの設計機能は、コーディング言語に依存しないか、C# のような .NET 言語で動作しますが、オブジェクト階層とクラスリレーションシップを備えた従来のアプリケーション パラダイムで動作します。 Unity 内でのゲームの設計には、グラフィカル オブジェクト、サウンド、シェーダー、スクリプトなどの関係など、まったく異なるパラダイムが含まれます。 このため、Visual Studio モデリング ダイアグラム ツールは、Unity プロジェクト全体に特に関連しません。 C# スクリプト内のリレーションシップを管理するために使用できる可能性がありますが、これは全体の一部にすぎません。

特徴 Unity でサポートされる その他のコメント
シーケンス図 いいえ
依存関係グラフ いいえ
呼び出し階層 いいえ
クラスデザイナー いいえ
アーキテクチャ エクスプローラー いいえ
UML 図 (ユース ケース、アクティビティ、クラス、コンポーネント、シーケンス、DSL) いいえ
レイヤー図 いいえ
レイヤーの検証 いいえ

コード

特徴 Unity でサポートされる その他のコメント
Team Foundation バージョン管理 (TFVC) または Azure Repos を使用する はい Unity プロジェクトは、他のプロジェクトと同様にバージョン 管理システムに配置できるファイルのコレクションにすぎませんが、この表の後に説明するいくつかの特別な考慮事項があります。
Azure Repos での Git の使い始め方 はい 表の後のメモを参照してください。
コード品質の改善 はい
コードの変更とその他の履歴の を検索する はい
コード マップを使用してアプリケーションをデバッグ はい

Unity でのバージョン管理に関する特別な考慮事項:

  1. Unity は、既定で非表示になっている単一の不透明なライブラリ内のゲーム アセットに関するメタデータを追跡します。 ファイルとメタデータの同期を維持するには、メタデータを表示し、管理しやすいチャンクに格納する必要があります。 詳細については、Unity での外部バージョン管理システムの使用に関する (Unity のドキュメント) を参照してください。

  2. 上記のリンクでも説明されているように、Unity プロジェクト内のすべてのファイルとフォルダーがソース管理に適しているわけではありません。 Assets フォルダーと ProjectSettings フォルダーは追加する必要がありますが、ライブラリ フォルダーと一時フォルダーは追加しないでください。 ソース管理に入らない生成されたファイルの追加の一覧については、「Unity3D ソース管理に Git を使用する方法 」の説明を参照してください。Stack Overflow での。 多くの開発者も、この問題について個別にブログを作成しています。

  3. テクスチャやオーディオ ファイルなど、Unity プロジェクトのバイナリアセットは、大量のストレージを占有する可能性があります。 Git などのさまざまなソース管理システムは、変更がファイルのごく一部にのみ影響を与える場合でも、行われたすべての変更に対してファイルの一意のコピーを格納します。 これにより、Git リポジトリが肥大化する可能性があります。 これに対処するために、Unity 開発者は多くの場合、最終的なアセットのみをリポジトリに追加し、OneDrive、DropBox、git-annex などの資産の作業履歴を保持する別の方法を使用することを選択します。 このような資産は通常、ソース コードの変更と共にバージョン管理する必要がないため、この方法が機能します。 また、開発者は通常、プロジェクト エディターのアセット シリアル化モードを設定して、ソース管理でのマージを可能にするバイナリ形式ではなくテキストでシーン ファイルを格納するようにテキストを強制します。 詳細については、エディターの設定 (Unity のドキュメント) を参照してください。

ビルド

リファレンス リンク: Azure Pipelines

特徴 Unity でサポートされる その他のコメント
オンプレミス Team Foundation Server (TFS) 可能 Unity プロジェクトは、Visual Studio ビルド システムではなく Unity 環境を通じてビルドされます (Visual Studio Tools for Unity 内でビルドすると、スクリプトはコンパイルされますが、実行可能ファイルは生成されません)。 コマンド ライン (Unity ドキュメント) から Unity プロジェクトを できるため、そのコンピューターに Unity 自体がインストールされていれば、適切な Unity コマンドを実行するように TFS サーバーで MSBuild プロセスを構成できます。

Unity には、Git または SVN リポジトリを監視し、定期的なビルドを実行する Unity Cloud Build も用意されています。 現時点では、TFVC または Azure DevOps Services では機能しません。
Azure DevOps Services にリンクされているオンプレミスのビルド サーバー 可能 上記と同じ条件を考えると、Azure DevOps Services を介してトリガーされたビルドを、オンプレミスの TFS コンピューターを使用するように指示することもできます。 手順については、「ビルド エージェントとリリース エージェントの」を参照してください。
Azure DevOps Services のホステッド コントローラー サービス いいえ Unity ビルドは現在サポートされていません。
事前スクリプトと事後スクリプトを使用して定義をビルドする はい Unity コマンド ラインを使用してビルドを実行するカスタム ビルド定義は、ビルド前スクリプトとビルド後スクリプト用に構成することもできます。
ゲートチェックインを含む継続的インテグレーション はい Git がチェックインではなくプルリクエストモデルで動作しているため、TFVC ではゲートチェックインのみが適用されます。

テスト

特徴 Unity でサポートされる その他のコメント
テストの計画、テスト ケースの作成、テスト スイートの整理 はい
手動テスト はい
テスト マネージャー (テストの記録と再生) Windows デバイスと Android エミュレーターのみ
コード カバレッジ n/a 単体テストは、Visual Studio ではなく Unity 内で行われるため適用できません。以下を参照してください。
コードの単体テスト Unity 内では、Visual Studio では使用できません Unity には、Unity テスト ツール (Unity アセット ストア) の一部として独自の単体テスト フレームワークが用意されています。 単体テストの結果は Unity 内で報告され、Visual Studio 内には表示されません。
UI オートメーションを使用してコード をテストする いいえ コード化された UI テストは、アプリの UI で読み取り可能なコントロールに依存します。Unity アプリは本質的にグラフィカルであるため、コード化された UI テスト ツールではコンテンツを読み取ることはできません。

コードの品質を向上させる

リファレンス リンク: コード品質の向上

特徴 Unity でサポートされる その他のコメント
マネージド コードの品質 を分析する はい Visual Studio 内で C# スクリプト コードを分析できます。
コードクローン検出 を使用して重複するコードを検索する はい Visual Studio 内で C# スクリプト コードを分析できます。
マネージド コード の複雑さと保守性を測定する はい Visual Studio 内で C# スクリプト コードを分析できます。
パフォーマンス ツール いいえ Unity Profiler (Unity Web サイト) を使用します。
.NET Framework のメモリに関する問題を分析する いいえ Visual Studio ツールには、プロファイリング用の Mono フレームワーク (Unity で使用される) へのフックがありません。 Unity Profiler (Unity ドキュメント) を使用します。

リリース管理

リファレンス リンク: Azure Pipelines と TFS でのビルドとリリースの

特徴 Unity でサポートされる その他のコメント
リリース プロセスの管理 はい
スクリプトを使用したサイドローディングのためのサーバーへの展開 はい
アプリ ストアにアップロードする 部分的 一部のアプリ ストアでこのプロセスを自動化できる拡張機能を利用できます。 Azure DevOps Services の拡張機能のを参照してください。たとえば、Google Play 拡張機能です。

HockeyApp を使用した監視

参照リンク: HockeyApp による監視

特徴 Unity でサポートされる その他のコメント
クラッシュ分析、テレメトリ、ベータ配布 はい HockeyApp は、主にベータ配布の処理とクラッシュ レポートの取得に役立ちます。

C# スクリプトからのテレメトリの場合、Unity で使用される .NET のバージョンで実行されている場合は、任意の分析フレームワークを使用できます。 ただし、これにより、ゲーム スクリプト内でのみ分析が可能になり、Unity エンジン内で詳細に分析することはできません。 現在、Application Insights 用のプラグインはありませんが、プラグインは、Unity Analytics や Google Analytics などの他の分析ソリューションで使用できます。 Unity プロジェクトの性質を理解する Unity Analytics などのサービスは、もちろん、汎用フレームワークよりもはるかに意味のある分析を提供します。