はじめに
これまで会社で2年ほどUnityでチーム開発をして来ましたが、そこで得た知見を文書化していなかったため、新人が入る度に講義をしていました。転職して環境も変わったので、以前やっていたチーム開発のやり方を残しておこうと思います。
ただ、全ての詳細を記載するとめんどくさい長大なエントリーになるため、概要程度の内容にとどめます。
そのうち各節の詳細を別エントリーで書くかもしれません。
対象
Gitの概要を知っていて、これからUnityでチーム開発を始める人
Unityでチーム開発をする
バージョン管理
Gitでおk。
ただし、エンタメ系の開発で巨大なファイル(モデル、テクスチャ、動画等)を管理する場合は注意が必要です。
何も考えずにGitで巨大なファイルをPushしていると、最終的にはCloneやブランチの切り替えに平気で数十分~数時間かかるようになるので、誰も幸せになりません。もし今そのようなリポジトリを使っているなら、腹を括って一旦捨ててしまったほうがよいでしょう。
素直にGitLFSを使えば良いと思います。
Gitホスティングサービス
Gitのホスティングサービスとは、GitHubとかBitBucketとかのことです。
これに関しては、予算やチームの規模によるので一概には言えません。どのサービスを使うのか、自社サーバを建てるのか等検討が必要です。
Gitホスティングサービスの比較は、ネット上に転がっているのでそちらを参照して決めてください。
Gitクライアント
プロジェクトメンバーのコンテキストや好みによると思いますが、私はSourceTreeを使っています。
特にエンタメ系の開発だと、非エンジニアもGitを触ることになるので、CUIはツラいです。
Gitの初期設定
この設定を忘れると、初期の段階ならリポジトリを作り直すレベルで面倒なことになるので非常に重要です。
Git上で管理しないファイルの設定を行う
Gitの無視リスト(gitignore)を設定します。
この設定を忘れてコミットしてしまうと、Unityが生成したローカルのLibraryファイルがGit管理ファイルとして大量に登録されます。
このファイルは、各個人で生成されるファイルが異なるため、Unityのプロジェクトファイルを開いた瞬間に、大量の差分が発生します。
もうこうなると差分管理どころではないので、前職では何度かリポジトリを捨てました。
復旧方法はあるっぽいのですが、うまくいったことがないので誰か解決方法教えてください。
何はともあれ、以下に記載のgitignoreを設定しておきましょう。
Unity向け .gitignoreの設定について
GitLFSで管理するファイルの設定を行う
GitLFSを使わない場合は設定不要です。
GitLFSは、管理する対象のファイル形式を予め設定する必要があります。
SourceTree上で「リポジトリ」-「Git LFS」-「Initialize Repository」から、管理する対象を追加しましょう。
Unityのバージョン
基本的にプロジェクト開始時点でのパッチリリース最新版を使えば良いと思います。
プロジェクトメンバーは全員同じバージョンを使いましょう。
Unityの初期設定
意外に忘れがちですが、UnityプロジェクトをGitで管理する場合、Unityプロジェクト側の設定を変更してあげる必要があります。
以下の通りEditorSettingsを設定しないと、シーンファイルやプレハブファイルがバイナリで保存されるため、Git上でマージする事ができません。
Unityのプロジェクトファイルを最初にコミットする際に、忘れずに設定しておきましょう。
最初にコミットするときに設定していれば、他のメンバーは改めて設定する必要はありません。