UnityのプロジェクトをSubversion(SVN)で管理

管理をする環境を用意するのが一番大変です。
作業する準備は色々な方法がありますが、私がやっている手順で説明します。

Subversionが管理するフォルダを作り、そのフォルダの下にUnityが管理するプロジェクトを作ります。Unity上で設定をすることでバージョン管理に対応したUnityのプロジェクトになります。
バージョン管理に対応したというのは、元に戻したり、他のパソコンで作業できるようにしたりといったことが対応できるようになります。
以下で具体的な手順を説明します。
TortoiseSVNを使うことを前提にします。表示されている画像では日本語パッチを当ててないので、コマンド名は英語です。それ以外のクライアント等は適宜コマンドを変えてください。


まずSubversionの管理するフォルダを2つ作ります。中身がなければ、どこにあってもかまいません。ひとつはリポジトリ、もうひとつは作業用のフォルダになります。
リポジトリは作業の全データを保存するデータ置き場と考えてください。
リポジトリの作成は、

のようにリポジトリにしたいフォルダを右クリックし、Create Repository hereを押します。
フォルダ構造をどうするか聞かれますが、そのままOKで大丈夫です。(SVNに詳しい人は自分なりの設定で良いと思います。)
リポジトリができたら、作業用のフォルダを準備します。

作業用にしたいフォルダを右クリックして、SVN Checkoutを選びます。URL of repositoryというのがリポジトリの場所を表すので、先ほど作成したリポジトリを指定します。指定したら、OKを押してチェックアウトが完了します。
作業用のフォルダには「.svn」というフォルダがあるだけになっていると思います。
これはSVNが管理するフォルダなので、触らないでおきましょう。
次にUnityのプロジェクトを作成します。
プロジェクトを作る場所は、先に作った作業用フォルダの下にしてください。
プロジェクトを作ってUnityを終了させれば、このようなフォルダ構造になっているはずです。
作業用フォルダ┓
┣.svn
┗Unityのプロジェクトフォルダ┓
┣Assets
┣Library
┗ProjectSettings
Unityのプロジェクトフォルダ以下を管理するのですが、このままだとできないのでUnityである設定を行います。Unityでこのプロジェクトを開き、メニューEdit->Project Settings->Editorを選びます。

インスペクタ上で設定項目があるので、以下のようにします。
Version ControlのModeをVisible Meta Filesにし、Asset SerializationのModeをForce Textにします。
Version Controlの方は、バージョン管理に必要なmetaファイルを作る設定です。
Asset Serializationは必須ではないのですが、Unityが作るファイル(シーン、プレハブ、マテリアルなど)をバイナリではなくテキストの形式(YAML)で保存するようにするものです。管理しやすくなるので、Force Textに設定しておいてください。

Unityを終了させ、Unityのプロジェクトフォルダ下にあるLibraryフォルダを消します。metaファイルがあれば、それから再作成されますので一旦消してください。
作業用フォルダに戻り、SVNの管理にファイルを追加します。作業用フォルダで右クリックをし、Addコマンドを選びすべてのファイルを追加してください。

追加が終わったら、右クリックしたメニュー中からSVN Commit…を選んでください。
以上でUnityの作成したプロジェクトがSVNによって、管理されることになります。


以下の内容はUnityのプロジェクトをSubversionで管理することの準備以降のことです。
もう一度プロジェクトをUnity上で起動すると、Libraryフォルダが再度作成されます。SVNで管理する対象ではないので、Libraryは無視リストに入れておきましょう。名前で無視するという設定で良いと思います。
ファイルが増えたときは、ファイルそのものとそれに対応するmetaファイルを追加してコミットしていってください。metaファイルを忘れると、Libraryフォルダを消したときに復元ができなくなってしまいます。
定期的にSubversionの管理フォルダのトップで変更の確認かコミットを行えば、漏れがなくなるのでやっておくと良いです。
Unityの公式ページにもバージョン管理について書いているので、読んでみる価値があります。