🪐

Unityプロジェクトの『開店準備』

2022/04/01に公開

はじめに

こんにちは、まつさこ です。Zenn記事初投稿です。
Zennを書いていこうと思い立ったものの、ネタが全く思い浮かばず5億年くらい経ちました。

考えた挙句、新Unityプロジェクトを立ち上げるときの僕のルーティンを紹介しようと思います。

今回は、今後このZennでUnityに関することを記事にしていく(していきたい)際にベースとするUnityプロジェクトを立ち上げていきます。
尚、プロジェクト全体をGitでバージョン管理してGithubのリモートリポジトリと同期させることを前提とします。

前提条件

次のことが終わっている開発環境であることを前提とさせてください。

  • Githubアカウントがある
  • GithubアカウントとPCのssh接続が通っている
  • Git Bashが使える(SourcetreeなどのGUIツールでも問題ないですが、本記事ではGit Bashを使用します)
  • UnityHubがインストール済みで、なんらかのバージョンのUnityがインストール済み

空のGithubリポジトリを作る

僕の場合はまず最初に、Githubのリモートリポジトリを作ってしまいます。

こんな感じ。

この際、Repository template や READMEファイル、.gitignore を自動生成はせず、本当に「空」のリポジトリを作成します。

Create Repository」をポチッとすると、見事空のリポジトリが生成され、リポジトリのトップページは以下のようになります。

これでGithubリポジトリの準備は完了です。
後ほど、ローカルのリポジトリと連携させるために、ここに書いてある
git@github.com:wappaboy/Zenn_Unity.git
のパスを使用することになります。

Unityプロジェクトを含むディレクトリを作成する

次に、ローカルPC上にUnityプロジェクトを含むディレクトリを作成します。

ここでの肝は、git管理のルートディレクトリとUnityプロジェクトのルートディレクトリを同じにしないということです。

ルートディレクトリを同じにすること自体はシステム的には何の問題もないと思いますが、Unityのルートディレクトリがgitのルートディレクトリと同じだと、 「Unityプロジェクト内に必要なファイルではないが、そのプロジェクトに関係するファイル」 をリポジトリに含めたい際に、置き場に困るという理由が大きいです。
例えばチームで開発するうえで、Blenderによる3Dモデル制作をするメンバーがいるときは、Unityルートディレクトリと同階層に「Blender」ディレクトリを錬成することが多いです。
Blenderの作業ファイルや関連ファイルを、そのディレクトリ内に含めていきます。

3Dモデル制作用にリポジトリを分けてもいいのですが、チームの規模がそこまで大きくない場合はリポジトリを分けた方がコストが高かったり、モデラーもUnityを起動して3Dモデルを導入し動作確認することが多々あることから、同じリポジトリ内で管理したい気持ちになります。

まああとはgitとUnityプロジェクトのルートディレクトリをズラす理由としては、 Assets とか Packages とかのフォルダがGithubのリポジトリページのトップに見えてると『なんか嫌だ』というのがあります。(個人の感想です)

.gitignore や、GitLFS設定ファイルの .gitattributes ファイル、README.md もリポジトリルートに入れます。
会社でのチーム開発などの際には、いつも使っているISSUEテンプレートやPULLREQUESTテンプレートを含む .github フォルダも含めます。
以下のような感じ。

あ、この時点ではまだ

git init

もしてない(Gitリポジトリになってない)ですし、Unityプロジェクトも作成していないので要注意です。次の項で作成します。

Unityプロジェクトを錬成

UnityHubで新しいUnityプロジェクトを作成します。
この時、Unityプロジェクトのディレクトリであると分かるために「***_Unity」といったプロジェクト名にいつもしています。

Gitリポジトリにする

Unityプロジェクトのルートディレクトリと同階層をGitリポジトリ化します。
Git Bashを開いて

git init

します。
そうしてできた .git フォルダは通常隠しフォルダになっていますが、見えるようにするとリポジトリの全体像はこんな感じ。

.git フォルダがGitリポジトリのルートに存在するやつなので、Git管理のルートディレクトリとUnityプロジェクトのルートディレクトリが同じ階層ではないことが分かります。

デフォルトだとブランチ名が master になっているので、もしチーム開発におけるデフォルトブランチが他の名前の場合はこの時点でチェックアウトしておくといいと思います。
今回は develop をデフォルトブランチとすることにして進めていきます。
チェックアウトしたら、ローカルリポジトリに最初のコミットをしましょう。

git init からの流れは

$ git init
$ git checkout -b develop  #developブランチを新しく作成しチェックアウト
$ git add .  #変更内容をすべてインデックスに追加
$ git commit -m "First commit!"  #コミット! -m "" 内はコミットメッセージ

といった感じがいつものルーティンになってます。

Githubリモートリポジトリにプッシュする

最後に、いっちばん最初に作った空のGithubリポジトリにローカルリポジトリをpushします。

ちなみに、Git Bashさんはとても優しいので、リモートリポジトリが登録されていない状態で

git push

などと入力すると、「無理だよ」と教えてくれる上に正しい記述方法を教えてくれます。

この啓示に素直に従ってコマンドを入力すれば、万事OKです。
途中でさらに「現在のdevelopというブランチは上流ブランチを持ってません」みたいなことを言われますが、これも啓示どおりコマンド入力すればOKです。

大成功の様子(Git Bash)

大成功の様子(Github)
ルートディレクトリの構造が美しい(気がする)。

さいごに

以上で、Unityプロジェクトの開店準備完了です。
あとは営業していくだけです。

読んでくださりありがとうございました🤗

Discussion