Unityでチームプロジェクトする時のおぼえがき
Unityチームプロジェクトをする時に気を付けること
サークルでUnityを使ったチームプロジェクトをしているので、
とりあえず取っ掛かりで調べたりしたこととかまとめておく。
参考にした(というかほぼこれの受け売り)サイト
コインプッシャーをモデルにゲームの作り方も扱ってたりしてるので良い。
この中から、自分が利用する、「Gitを用いたバージョン管理」と、その他留意点をまとめる。
環境
- Unity
- Git(Hub,lab)
- SourceTree
Unityで設定すること
当然のことながら、Unityのバージョンを揃えることは重要(違うと無駄に変更が多くなるし、うまくいく保証もない)
加えて、Unity側で設定することがあるらしい。
Unityの編集画面から、メニューバーから Edit→ Project Settings → Editor を選択する。
Editor Settingsがinspectorで表示されるので、その項目を変更する。
変更するのは、
- Version Control : Hidden Meta Files → Visible Meta Files
- Asset Serialization : Mixed → Force Text
の二点。これでコンフリクトが発生しても解消できるようになるんだとか……
なんで?調べてません。
gitで設定すること
Unityプロジェクトはそれはそれは大量の管理データ等が存在するため、
何か一つ変えたり、追加したらファイルの追加/変更量もえぐいことになるので、しっかりプロジェクトに影響のない範囲で、 変更を無視するための、無視ファイルが必要になる。
手っ取り早いのは、githubからファイルを取ってきて使う。
「Unity gitignore」で検索したらGitHubのページが出てくるので、ファイルをダウンロードしてリポジトリに追加して使用する。
チーム内で決めること
これが一番大事かもしれない。
複数人が同じシーンを編集しない
通常、プロジェクト内で複数人が同じファイルを編集したときは、gitにマージする時点で、コンクリフトが発生する。
普通は発生したコンクリフトは手動またはツールで解決するが、シーンのコンフリクトはそれはもうとんでもないらしいので、 マージも途轍もなく困難になるらしい(そうなってるところを見たことある)
そこで、ブランチのように、各自の作業/実験のためのシーンを各自作る。
また、本当のゲームで使うシーンも基本1人が編集するようにする。
逆に言えば、シーンを分けて編集することで、各自が自由実験でき、 かつどうやってもシーンによるコンクリフトが起きないので有効な手段であると思う。
作ったオブジェクトはとにかくプレハブ化する
各自がシーンで制作した(共有したい)ゲームオブジェクトは、インスタンス化して利用する等に関わらずプレハブ化するべきである。
プレハブ化しておけば、Assetsに登録されるのでどのシーンにも簡単に追加することが可能になる。
プレハブの変更も全てに反映されるので、各作業シーンや、ゲームのためのシーンで簡単に追加することが可能になる。
オブジェクトデータ等を置換したいとき
3Dデータや画像など、データを別のものにしたいときは、Unity外部のファイルを開いて同じ名前で置き換える。
こうすると、もとのオブジェクトが持っていた関係をそのまま引き継いでおけるので、面倒が少ない。
画像等のデータ班との連携という観点からのポイント。
まとめ
以上のことに気を付けて、れっつえんじょいチームぷろじぇくと!!!!