Unity は Perforce と Plastic SCM によるバージョン管理の統合をサポートしています。バージョン管理の選択に関する詳細情報は、それらのページを参照してください。
バージョン管理システム を使うと、個人/複数人のユーザーでコードを管理するのが楽になります。これは、アクセスを監視されたファイルのリポジトリです。Unity の場合、ここにあるファイルはすべて Unity プロジェクトに関連するものです。バージョン管理では、誰がその変更を行ったか、なぜ変更したのか、何を追加/変更したのか等、ソースへのあらゆる変更を追跡することが可能です。これにより、変更を取り消して過去のバージョンのコードに戻したり、バージョン間の差異を比較することが簡単にできます。コードのどの部分がバグの原因になっているのかを調べるのも楽になります。
バージョン管理ソフトウェアのマニュアルにしたがって設定が完了したら、以下の手順を実行してください。
任意のクライアントを使用して、コンピューター上にワークスペースを設定または同期してください。(このステップに関する説明は Plastic SCM の統合 や Perforce の統合 を参照してください。)
既存のプロジェクトをワークスペースにコピーするか、Unity を起動して新しいプロジェクトをワークスペースに作成してください。
プロジェクトを開き、Edit > Project Settings を選択し、Editor カテゴリを選択します。
Version Control の下のドロップダウンで、使用するバージョン管理に合う Mode を選択します。
バージョン管理の設定(username / password / server / workspace 等)を入力してください。
ファイルがプロジェクト(あるいはディスク上のフォルダー)に追加されたときに、自動でバージョン管理に追加されるようにしたい場合は、 Automatic add のチェックボックスをオンにしてください。オンになっていないと新しいファイルは手動で追加する必要があります。
オフラインで作業する選択肢もあります。このモードは、手動で更新をバージョン管理システムに統合し直すことができる上級ユーザー向けです (Perforce を使用したオフラインでの作業)。
Asset Serialization、Default Behaviour Mode、Sprite Packer のオプションは、開発チームのバージョン管理システムに合わせて自在に編集できます。
Connect をクリックした後に Connect ボタン上部に「Connected」と表示されるのを確認してください。
標準で使用しているクライアント (例えば p4v) を使用して、Assets フォルダーや ProjectSettings フォルダーにあるすべてのファイル (.meta で終わるファイルも含む) を確実に加えるようにしてください。
どの時点でも、メニューの Prefences から External Tools を選択し、Revision Control Diff/Merge ツールを設定することが可能です。
この時点で、バージョン管理クライアントを 1つ 1つ確認する代わりに、プロジェクトビューのアセットを右クリックして、直接、主要なバージョン管理操作が可能です。バージョン管理の操作方法は、選んだバージョン管理によってさまざまです。この表では、どのバージョン管理で、どのような操作が直接可能なのかを示しています。
操作 | 説明 | Perforce | Plastic SCM |
Check Out | ファイルに変更を加えることが可能になります | 可 | 可 |
Diff against head | ローカルと Head とのファイルの差分 | 可 | 可 |
Get Latest | 最新の変更箇所を抜き出しファイルを更新する | 可 | 不可* |
Lock | 他のユーザーがファイルに変更を加えられないようにする | 可 | 不可** |
Mark Add | バージョン管理には追加せずにローカルで追加する | 可 | 可 |
Resolve Conflicts | 複数のユーザーによって変更されたファイルの競合を解決する | 可 | 不可*** |
Revert | 開いているファイルの変更を取り消す | 可 | 可 |
Revert Unchanged | 開いている未変更ファイルに加えられた変更を取り消す | 可 | 可 |
Submit | ファイルの現在の状態をバージョン管理に送る | 可 | 可 |
Unlock | ロックを解除し、誰にでも変更が加えられるようにする | 可 | 不可** |
* 最新の変更箇所の取得およびファイルの更新に Plastic SCM を使用する場合は、バージョン管理ウィンドウを使用する必要があります。
** Plastic SCM を使用してロックやロック解除を行うには、特定の Plastic SCM ロックファイルを外部で編集する必要があります。詳細は Plastic SCM の統合 のページを参照してください。
*** 競合はバージョン管理メニュー内に表示されますが Plastic SCM GUI 上で解決されます。
Version Control Window (Window > Asset Management > Version Control) から、変更リスト内のファイルの概要を見ることができます。エディターのインスペクターの横に表示されます。
‘Outgoing’ タブには、ローカルで加えられた変更ヶ所でバージョン管理へのコミット待ちのものがすべてリスト表示されます。‘Incoming’ タブにはバージョン管理から取得されたすべての変更ヶ所がリスト表示されます。
このウィンドウ内でアセットや変更リスト上を右クリックすると、それらを操作できます。ある変更リストから別の変更リストへアセットを移動するには、アセットをドラッグして移動したい先の変更リストのヘッダーにドロップしてください。
以下は、ファイルやアセットのバージョン管理の状態を見た目で把握しやすくするために Unity エディター上に表示されるアイコンです。
Icon | 意味 | 追加情報 |
ローカルで加えたファイル | バージョン管理へ加えるのを保留 | |
別のユーザーがバージョン管理に加えたファイル | バージョン管理へ加えるのを保留 | |
本人によってチェックアウトされているファイル | ファイルはローカルでチェックアウトされています | |
別のユーザーによってチェックアウトされているファイル | ファイルはリモートでチェックアウトされています | |
ファイルのマージ時に競合が発生しました | 競合を解決する必要があります | |
本人によって削除されたファイル | バージョン管理上での削除待ち | |
別のユーザーによって削除されたファイル | バージョン管理上での削除待ち | |
バージョン管理に未登録のファイル | 無し | |
本人によってロックされているファイル | 本人以外は編集不可 | |
別のユーザーによってロックされているファイル | 本人は編集不可 | |
別のユーザーがこのファイルの別バージョンをチェックインしました | 「Apply Incoming Changes」で最新バージョンを取得可能 | |
サーバーがこのファイルのバージョン管理状況をリクエストしています。または、返答を待機しています。 | このアイコンは、Perforce のような集中管理されたバージョン管理システムを使用している場合にのみ表示されます。 |
注意事項
アセットを扱う場合 Unity は、アセットファイルとそれに関連する .meta ファイルの両方を自動でチェックアウトします。ただし、ほとんどの場合 .meta ファイルは修正されていないため、後からブランチをマージするなどの、余分な作業が必要になる可能性があります。
Unity はオフラインモードでの作業にも対応しています (例えば、ネットワーク接続なしでバージョン管理リポジトリの作業を継続する等)。
Unity は、Perforce などの一部のバージョン管理プロバイダーの非同期バージョン管理状況クエリをサポートしています。 このオプションを使用すると、これらのプロバイダーは、Unity をフリーズさせずにファイルのバージョン管理状況を更新できます。バージョン管理サーバーへの接続で遅延が発生する場合は、このオプションを使用します。
状況のクエリ中にフリーズが発生する場合は、Version Control Settings__ に移動し、 Allow Async Update__ を選択します。
注意 状況クエリのみが非同期です。ファイルの状況を変更したり、ファイルの状況に関する最新の情報を取得する操作は、同期で実行されます。
Unity が バージョン管理クライアントに更新をコミットできない場合は (例えば、サーバーダウンやライセンス問題の発生)、更新はばらばらのチェンジセットに格納されます。
Asset Server (Unity の内部バージョン管理システム) の使用について詳しくは、Asset Server を参照してください。
Unity でサポートされていないバージョン管理システムを使用するには、エディター ウィンドウの Version Control の Mode で MetaData を選択します。これにより、選択したバージョン管理システムでアセットのソースアセットとメタデータを管理することができます。詳細は、外部バージョンコントロールシステムの使用 を参照してください。
2017–09–18 Page amended
非同期のバージョン管理状況クエリの説明は Unity 2017.3 で追加