[Unity] SVN(Subversion)を使って複数人開発を行う方法

こんにちは。京都事業部の大西です。

今回はUnityのプロジェクトをSVNで共有する方法をご紹介します。
この方法を使うことで、複数人での開発を行うことが可能です。
(※ Unity Proライセンスが必須となります)

Unityはプロジェクトフォルダ内が多数のバイナリファイルとそれらを関連づけるファイルとで構成されているため、
普通に共有した場合にファイルが壊れてしまうケースが多々あります。

そこでUnity Proライセンスからサポートされる機能「External Version Control Support」を使用します。

まず、SVNで共有したいプロジェクトを開いた状態で、メニューの「Edit->Project Settings->Editor」を選択します。
[Unity + SVN]MenuからExternal Version Cntrol Supportの設定を開く

Inspectorウィンドウに表示される、External Version Control Supportの「Enable」ボタンを押すことでこの機能がONになります。
[Unity + SVN]External Version Cntrol SupportをEnableにする

この機能を使用すると、Assetフォルダ内のすべてのファイルひとつひとつに.metaファイルが作成されます。
[Unity + SVN]作成された.metaファイル

この.metaファイルはそれぞれのAssetファイルに対してGUIDを付与し、変更履歴の管理に使用されます。
別の開発者が更新されたプロジェクトファイルを読み込んだ際には、
どのAessetファイルが変更されたかの情報を読み込み、
.metaファイルに記載されたGUIDと照らし合わせることで、
差分を埋める仕組みになっているようです。

基本的にはこれでバージョンコントロールが可能になるのですが、
各開発環境に依存する下記のファイルはSVNにアップしないようにignore指定をする必要があります。

  • EditorBuildSettings.asset
  • InputManager.asset
  • ProjectSettings.asset
  • QualitySettings.asset
  • TagManager.asset
  • TimeManager.asset
  • AudioManager.asset
  • DynamicsManager.asset
  • NetworkManager.asset

あとは、通常の開発と同様に、SVNを使って、プロジェクトを共有して行けばOKです。

公式解説:Unity – Using External Version Control Systems with Unity
http://unity3d.com/support/documentation/Manual/ExternalVersionControlSystemSupport.html


 
※ 下記実際に案件使ってみて感じた、Unity+SVNでの注意点です。

  • バイナリファイルの変更はマージできないため、同一Sceneは複数人が同時に触らないようにする
  • Sceneの編集を保存しないと、変更が反映されないことがあるので注意(.metaファイルの更新タイミングが保存に依存している?)
  • EZGUIのBuild Atlases時にScan Project Folderにチェックを入れていると、プロジェクト内のすべてのTextureファイルが書き変わってしまう可能性があるので注意
  • Build SettingsのSwitch PlatFormは、すべてのTextureの設定を変更するため、最初に行っておく(Buildの設定は共有されないので、各開発者がcheckout直後に行うのがベスト)
  • Library内のファイルや、.assemblyファイルはすぐ勝手に書き変えられるので注意
  • 多少の壊れているファイルや不足ファイルについては、プロジェクト起動時に修復してくれます(修復部分は初期設定になります)。

 


 

・Unityで作ったiPhone、Androidアプリ”みそだ教授の「おミソわけ」”をリリースしました!
http://cshool.co.jp/apps/misodajump/jp/

・クスール学校事業部で3Dコンテンツの開発プロセスを基礎から学ぶ「Unity講座」やっています。
http://www.cshool.jp/course/unity/