バージョン管理
Perforce の統合

Version control integration

Unity は PerforcePlastic SCM による統合型のバージョン制御をサポートしています。バージョン制御の選択に関する詳細情報は、それらのページを参照してください。

バージョン管理をするメリット

バージョン管理システム を使うと、個人/複数人のユーザーでコードを管理するのが楽になります。アクセスを監視されたファイルリポジトリがあり、Unity の場合、そのファイルすべてが Unity プロジェクトに関連付けられる事になります。バージョン管理では、誰がその変更を行ったか、なぜ変更したのか、何を追加/変更したのか等、ソースへのあらゆる変更を追跡することが可能です。これにより、変更を取り消して過去のバージョンのコードに戻したり、バージョン間の差異を比較することが簡単にできます。コードのどの部分がバグの原因になっているのかを調べるのも楽になります。

Unity 上でバージョン管理を設定する

バージョン管理ソフトウェアのマニュアルにしたがって設定が完了したら、以下の手順を実行してください。

  1. コンピューター上に、好きなクライアントを使用して作業領域をセットアップまたは同期してください。(このステップに関する説明は Plastic SCM の統合Perforce の統合 を参照してください。)

  2. 既存のプロジェクトを作業領域にコピーするか、Unity を起動して新しいプロジェクトを作業領域に作成してください。

  3. プロジェクトを開き、メニューから Edit->Project Settings->Editor と進んでください。

  4. バージョン管理システムに基づいて、バージョン管理の Mode を選択してください。

  5. バージョン管理の設定(username / password / server / workspace 等)を入力してください。

  6. ファイルがプロジェクト(あるいはディスク上のフォルダー)に追加されたときに、自動でバージョン管理に追加されるようにしたい場合は、Automatic add のチェックボックスをオンにしてください。オンになっていないと新しいファイルは手動で追加しなければいけなくなります。

  7. オフラインで作業するための選択肢もあります。このモードは、使用中のバージョン管理システムに更新を手動で統合し直すことができる上級ユーザー向けです(Perforce を使用したオフラインでの作業)。

  8. Asset Serialization、Default Behaviour Mode、Sprite Packer のオプションは、開発チームのバージョン管理システムに合わせて自在に編集できます。

  9. Connect をクリックした後に、Connect ボタン上部に “Connected” と表示されるのを確認してください。

  10. 標準で使用しているクライアント(例: p4v)を使用して、Assets フォルダーや ProjectSettings フォルダーにあるすべてのファイル(.meta で終わるファイルも含む)が確実に追加されるようにしてください。

どの時点からでも、メニューの Prefences から External Tools を選択し、Revision Control Diff/Merge ツールを設定することが可能です。

バージョン管理の使用

ここで重要な操作は、バージョン管理クライアントを通して操作する代わりに、プロジェクトビュー上でアセットを右クリックしての直接操作が可能になります。バージョン管理の操作方法は、選んだバージョン管理によってさまざまです。この表では、どのバージョン管理クライアントで、どんな操作が可能なのかを示しています。

操作 説明 Perforce **Plastic SCM
Check Out ファイルに変更を加えることが可能になります Yes Yes
Diff against head ローカルと Head とのファイルの差分 Yes Yes
Get Latest 最新の変更箇所を抜き出しファイルを更新する Yes 不可*
Lock 他のユーザーがファイルに変更を加えられないようにする Yes 不可**
Mark Add バージョン管理には追加せずにローカルで追加する Yes Yes
Resolve Conflicts 複数のユーザーによって変更されたファイルの競合を解決する Yes 不可***
Revert 開いているファイルの変更を取り消す Yes Yes
Revert Unchanged 開いている未変更ファイルに加えられた変更を取り消す Yes Yes
Submit ファイルの現在の状態をバージョン管理に送る Yes Yes
Unlock ロックを解除し、誰にでも変更が加えられるようにする Yes 不可**

* 最新の変更箇所の取得およびファイルの更新に Plastic SCM を使用する場合は、バージョン管理ウィンドウを使用する必要があります。

** Plastic SCM を使用してロックやロック解除を行うには、特定の Plastic SCM ロックファイルを外部で編集する必要があります。詳細は Plastic SCM の統合 のページを参照してください。

*** 競合はバージョン管理メニュー内に表示されますが Plastic SCM GUI 上で解決されます。

Mac の Plastic SCM バージョン管理メニュー
Mac の Plastic SCM バージョン管理メニュー
Windows の Plastic SCM バージョン管理メニュー
Windows の Plastic SCM バージョン管理メニュー

バージョンコントロールウィンドウ

変更リストのファイル一覧は Version Control Window ( Window->Version Control ) で確認できます。ここではエディターの Inspector の隣に折りたたまれています。

‘Outgoing’ タブには、ローカルで加えられた変更ヶ所でバージョン管理へのコミット待ちのものがすべてリスト表示されます。‘Incoming’ タブにはバージョン管理から取得されたすべての変更ヶ所がリスト表示されます。

このウィンドウ内でアセットや変更リスト上を右クリックすると、それらを操作できます。ある変更リストから別の変更リストへアセットを移動するには、アセットをドラッグして移動したい先の変更リストのヘッダーにドロップしてください。

アイコン

以下は、ファイルやアセットのバージョン管理の状態を視覚的に把握しやすくするために Unity エディター上に表示されるアイコンです。

アイコン 意味 追加情報
ローカルで加えたファイル バージョン管理へ加えるのを保留
別のユーザーがバージョン管理に加えたファイル バージョン管理へ加えるのを保留
本人によってチェックアウトされているファイル ファイルはローカルでチェックアウトされています
別のユーザーによってチェックアウトされているファイル ファイルはリモートでチェックアウトされています
ファイルのマージ時に競合が発生しました 競合を解決する必要があります
本人によって削除されたファイル バージョン管理上での削除待ち
別のユーザーによって削除されたファイル バージョン管理上での削除待ち
バージョン管理に未登録のファイル 無し
本人によってロックされているファイル 本人以外は編集不可
別のユーザーによってロックされているファイル 本人は編集不可
別のユーザーがこのファイルの別バージョンをチェックインしました 「Apply Incoming Changes」で最新バージョンを取得可能

注意事項:

  • バージョン管理システムには、アセットが Checked out とマークされるまでは編集ができないものもあります。( Work offline にチェックが入っている場合は除く。)
  • .scene ファイルへの変更を保存すると、そのファイルは自動でチェックアウトされます。
  • Project Settings インスペクターの右下にある checkout ボタンで、設定をチェックアウトできます。
  • 頻繁に表示される黄色い警告は、項目に変更を加えるためにそれをチェックアウトするよう促すものです。これは主に Project Settings インスペクターに表示されます。
  • Plastic SCM では、ライトマップなどの自動生成されたアセットは、自動で追加・チェックアウトされます。

送信時に変更されていないファイルの自動取り消し

アセットを扱う場合 Unity は、アセットファイルとそれに関連する .meta ファイルの両方を自動でチェックアウトします。ただしほとんどの場合 .meta ファイルは修正されていないため、後からブランチの統合を行うなどの、余計な作業が必要になる可能性があります。

オフラインモード

Unity はオフラインモードでの作業にも対応しています。(例:バージョン管理リポジトリへのネットワーク接続なしで作業を継続する等)

  • バージョン管理への接続を切った状態での作業を可能にするには、Version Control Settings から Work offline を選択してください。

トラブルシューティング

Unity が、なんらかの理由(例:サーバーのダウン、ライセンスの問題等)によってバージョン管理クライアントに変更をコミットできない場合、その変更は、独立したチェンジセットに保存されます。

アセットサーバーを使用した作業

アセットサーバー(Unity 内蔵のバージョン管理システム)を使用した作業に関しては、アセットサーバー (チームライセンス) を参照してください。

その他のバージョン管理システムを使用した作業

Unity がサポートしていないバージョンコントロールシステムを使う場合、エディター設定で、MetaData as the Mode for Version Control を選んでください。これにより使用するバージョン管理システムで、アセットのソースアセットとメタデータが管理可能になります。詳細については、Unity で外部のバージョン管理システムを使用 のドキュメントを参照してください。

バージョン管理
Perforce の統合