Unityのプロジェクトをgithubで管理する際の必要な情報とお勧めについて。
github側
まずはリポジトリを作成する。
その際にgithubの Add .gitignore:
ボタンから、プロジェクトなのかを選択することができるのでUnityを選ぶ。
gitignore
gitのバージョン管理の対象にしたくないもの、除外したいものをディレクトリ単位または、ファイル単位、もしくはファイルの名前の一部を含むもので指定できる。
先のgithubの設定で出来上がった .gitignore
ファイルは以下のようになっている。
[Ll]ibrary/ [Tt]emp/ [Oo]bj/ [Bb]uild/ # Autogenerated VS/MD solution and project files /*.csproj /*.unityproj /*.sln /*.suo /*.user /*.userprefs /*.pidb /*.booproj #Unity3D Generated File On Crash Reports sysinfo.txt
これだとルートからUnityのプロジェクトを作成しているのでいくらか改変が必要になる。
内容がどういう意味なのかは次のリンクで確認できる。
– gitで管理しないファイルを無視させる .gitignore
githubで管理しやすいディレクトリ構成
いかが自分がよくつかう構成
- client
- Unityのプロジェクトがまるっと入る。前述のgitignoreは全部の構成の前に
client
をつける必要がある。
- Unityのプロジェクトがまるっと入る。前述のgitignoreは全部の構成の前に
- build
- UnityからBuildした際の出力先。この下にiOSやAndroidなどのプラットフォームがならび、その下にXcodeプロジェクトなどが入るが、gitの管理対象外にしている。重いので。
- server
- クライアントサーバ型のアプリの場合はサーバの構成をこの下に記述する。
- assetbundle
- アセットバンドル構築用のUnityProjectを入れておく。AssetBundle対象はこの下のプロジェクト下のResourcesフォルダから、res下にあるフォルダのエイリアスを持っておく。
- res
- リソースフォルダ。画像ファイルなどをつめこむ。AssetBundle化対象リソースもこの下にディレクトリを作成し、その中に入れておく。
- tools
- ツール類を入れる場所。
- setup
- サーバセットアップや環境セットアップなどのスクリプトなどを入れておく。
他にもプロジェクトの内容によって適せん改変させる。
Unity側
基本的にはSVN + UNITY でやっておくことと同様に、metadataをtext形式で可視化させる設定だけ。
気をつけること
SVN + UNITY でやっておくことでも書いてある通りに、UnityはAssetDatabaseで管理しているので、通常のOSのファイルシステムと保存されるタイミングが異なる。Sceneを保存してもPrefabは保存されない。
Save Projeect
をすればUnityを落とさなくても大丈夫。
そして可能な限りPull Requestでバージョンを管理する。
pullとpushだけでやると事故った時に対応が大変。