Unity は Perforce と Plastic SCM による統合型のバージョン制御をサポートしています。バージョン制御の選択に関する詳細情報は、それらのページを参照してください。
バージョン管理システム を使うと、個人/複数人のユーザーでコードを管理するのが楽になります。アクセスを監視されたファイルリポジトリがあり、Unity の場合、そのファイルすべてが Unity プロジェクトに関連付けられる事になります。バージョン管理では、誰がその変更を行ったか、なぜ変更したのか、何を追加/変更したのか等、ソースへのあらゆる変更を追跡することが可能です。これにより、変更を取り消して過去のバージョンのコードに戻したり、バージョン間の差異を比較することが簡単にできます。コードのどの部分がバグの原因になっているのかを調べるのも楽になります。
バージョン管理ソフトウェアのマニュアルにしたがって設定が完了したら、以下の手順を実行してください。
コンピューター上に、好きなクライアントを使用して作業領域をセットアップまたは同期してください。(このステップに関する説明は Plastic SCM の統合 や Perforce の統合 を参照してください。)
既存のプロジェクトを作業領域にコピーするか、Unity を起動して新しいプロジェクトを作業領域に作成してください。
プロジェクトを開き、メニューから Edit->Project Settings->Editor と進んでください。
バージョン管理システムに基づいて、バージョン管理の 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 ツールを設定することが可能です。
ここで重要な操作は、バージョン管理クライアントを通して操作する代わりに、プロジェクトビュー上でアセットを右クリックしての直接操作が可能になります。バージョン管理の操作方法は、選んだバージョン管理によってさまざまです。この表では、どのバージョン管理クライアントで、どんな操作が可能なのかを示しています。
操作 | 説明 | 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->Version Control ) で確認できます。ここではエディターの Inspector の隣に折りたたまれています。
‘Outgoing’ タブには、ローカルで加えられた変更ヶ所でバージョン管理へのコミット待ちのものがすべてリスト表示されます。‘Incoming’ タブにはバージョン管理から取得されたすべての変更ヶ所がリスト表示されます。
このウィンドウ内でアセットや変更リスト上を右クリックすると、それらを操作できます。ある変更リストから別の変更リストへアセットを移動するには、アセットをドラッグして移動したい先の変更リストのヘッダーにドロップしてください。
以下は、ファイルやアセットのバージョン管理の状態を視覚的に把握しやすくするために Unity エディター上に表示されるアイコンです。
アイコン | 意味 | 補足情報 |
ファイルがローカルで追加済み | バージョン管理への追加待ち | |
別のユーザーによってファイルがバージョン管理に追加済み | バージョン管理への追加待ち | |
ファイルが本人によってチェックアウト済み | ローカルでチェックアウト済み | |
別のユーザーによってファイルがチェックアウト済み | リモートからチェックアウト済み | |
ファイルのマージ時に競合が発生した | リゾルブが必要 | |
ファイルが本人によって削除済み | バージョン管理上での削除待ち | |
別のユーザーによってファイルが削除済み | バージョン管理上での削除待ち | |
ファイルがバージョン管理に未登録 | 該当無し | |
本人によってファイルがロックされている | 別のユーザーは編集不可 | |
別のユーザーによってファイルがロックされている | 本人は編集不可 | |
別のユーザーによってファイルの別バージョンがチェックイン済み | “Apply Incoming Changes” で最新バージョンを取得可能 |
注意事項:
アセットを扱う場合 Unity は、アセットファイルとそれに関連する .meta ファイルの両方を自動でチェックアウトします。ただしほとんどの場合 .meta ファイルは修正されていないため、後からブランチの統合を行うなどの、余計な作業が必要になる可能性があります。
Unity はオフラインモードでの作業にも対応しています。(例:バージョン管理リポジトリへのネットワーク接続なしで作業を継続する等)
Unity が、なんらかの理由(例:サーバーのダウン、ライセンスの問題等)によってバージョン管理クライアントに変更をコミットできない場合、その変更は、独立したチェンジセットに保存されます。
アセットサーバー(Unity 内蔵のバージョン管理システム)を使用した作業に関しては、アセットサーバー (チームライセンス) を参照してください。
Unity がサポートしていないバージョンコントロールシステムを使う場合、エディター設定で、MetaData as the Mode for Version Control を選んでください。これにより使用するバージョン管理システムで、アセットのソースアセットとメタデータが管理可能になります。詳細については、Unity で外部のバージョン管理システムを使用 のドキュメントを参照してください。