Unityでゲーム作る前に私がどんな風にプロジェクトを管理しているのかを説明します。
Utniyのプロジェクト
私がゲーム作り始める時は図のようにゲーム制作用のテンプレを作っているのでそれを利用しています。UnityProjectにはUnityでのファイルを保存しています。素材はゲームで使用する素材を、AdobeにはPhotoshopやillustratorのプロジェクトを入れています。Clipstudioもクリスタのプロジェクトを入れています。BuildはUnityで作成したゲームのビルド先をここに指定しています。Game情報はGooglePlayで登録するための情報を管理しています。クラス図はプログラム作成の時にクラス図を書くことで全体のコードのバランスを考えています。ゲーム仕様書はこのゲームは誰に向けているものなのか、テーマは、どこが面白いのか、ゲームの企画となっています。第2回であったゲームの進捗もここで管理しています。
素材の管理
素材の管理はこんな感じです。AndroidDevはストアにあげるときに宣伝用と登録用に使用する素材をいれておきます。Iconはアプリのアイコンです。Imageはゲームで使用する2D画像はすべてここです。Modelは3d用です。AudioはBGMとSE。Fontはフォントですね。ただフォントはしっかりと管理すべきだと思っています。Fontが無料で使えるものなのか、そしてどういう形なのか管理するのが複雑になりがちです。私はエクセルに一覧を作って、このゲームでは使っているかをどうかを管理しています。
バージョン管理
https://www.sourcetreeapp.com/
バージョン管理についてはソースツリーというソフトを使用しています。主にプログラムソースの管理をこのソフトで行っています。同じような機能を持つソフトは他にもあると思いますので自分に合ったものを使うのが良いと思います。
Unityのプロジェクト
Unityのプロジェクトテンプレ作成し、それを利用しています。ファイル構成には諸説あると思いますが私の例を紹介します。
一番上の階層はシンプルです。Projectに自分のファイルを入れていきます。
Project内は細かく素材ごとにフォルダ分けして管理しています。SceneついてはSceneファイルを入れいています。そのほかは名前の通りに管理しています。
Scriptの管理
ソースについてはこのように管理しています。基本的にSceneごとに使用するScriptを分けて管理するようにしています。どんなゲームでもタイトルと遊ぶ(Game)シーンは存在するのでテンプレで作ってあります。シーンが増える際はOtherSceneをコピーして増やしていきます。
BaseUtilはこのゲームだけではないすべてのゲームで利用できるようなシステムをここで管理しています。Testはテスト用のScriptを入れていきます。
ここで注意しているのはシーンのファルダに入れるScriptはBaseUtilを継承し、独立していることです。TitleSceneにあるシステムをGameSceneで使うことはないようにしています。プログラムをやっている人は当然だと思いますが、自分のルールとして必ず守っています。