Unityのプロジェクトをバックアップする方法

# 目的
Unityでプロジェクトをバックアップする方法を以下の３つにまとめてみました。

1. Collaborateを使う方法
2. GitHubを使う方法
3. フォルダごとバックアップする方法

# 環境
Unity Hub 2.1.3
Unity2018.4.11f1
Mac 10.15.1




# 1. Collaborateを使う方法
Unityの機能にCollaborateという機能があります。
手軽にプロジェクトをクラウドに保存できるという優れものです。
Collaborateの設定方法と使い方を説明します。

## Collaborateでできること

* バージョン管理
* プロジェクトの共有

GitHubのUnity版だと思ってください。


## 設定方法

### 1. 対象プロジェクトとUnityアカウントを紐づける

プロジェクトを開いてServicesタブにて自分のアカウント名を選択して`Create`ボタンを押します。
![スクリーンショット 2019-11-25 16.56.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260143/851afc5a-8414-560e-0b0e-ae6a871cd044.png)

> Servicesタブが表示されていない場合
ツールバーの`Window`>`General`>`Services`



### 2. Collaborateを有効化

Collaborateの`OFF`を`ON`に切り替えます
<img width="319" alt="スクリーンショット 2019-11-25 09.29.32.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260143/fe895b78-77fb-7bef-cc47-057639a39f0f.png">

Create together seamlessly を有効にします
<img width="319" alt="スクリーンショット 2019-11-25 09.29.53.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260143/4223ffb3-0dd5-46c3-4f8e-39c82e0bc929.png">

Collaborateのメニューが表示されれば完了です。
左上のCollabアイコンも有効化さたのでクリックします。
<img width="434" alt="スクリーンショット 2019-11-25 09.30.24.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260143/66ab47a4-269a-018d-baf3-eca1f34486ef.png">





### 3. プロジェクトをアップロードする

アップロードする際のコメントを入力して`Publish now!`をクリックします。

<img width="319" alt="スクリーンショット 2019-11-25 09.34.33.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260143/03000ae9-b459-cc58-5645-d1bab09870d7.png">

アップロードされるまでしばらく待ちます。
<img width="316" alt="スクリーンショット 2019-11-25 09.35.18.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260143/736ad5b4-29c5-43a7-00fb-2f9816a1158c.png">

アップロード完了したら、左下のアイコンをクリックします。
<img width="319" alt="スクリーンショット 2019-11-25 09.37.58.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260143/3e6f1577-5416-3943-6e5c-a94c8110156c.png">

アップロードされたバージョン履歴が確認できます。
<img width="162" alt="スクリーンショット 2019-11-25 09.55.46.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260143/9d2f5c08-3adf-9057-5fe3-7d2611a2dcc5.png">
> 一番下の履歴はプロジェクトを作成した最初の状態なので誤って`Go back to...`をクリックしてしまうと、プロジェクトを作成した初期状態に戻ってしまうので注意が必要です。


## 使い方

### バージョンの戻し方
今後はプロジェクトに変更を加える度にCollaborateにアップロードすることで、新しいバージョン履歴が増えます。
１つ前のバージョンに戻したい場合は、`Restore`ボタンを押すことでそのバージョンまで戻すことができます。

### プロジェクトの共有方法

人型のアイコンをクリックするとCollaborateのダッシュボードへ移動します。
![スクリーンショット 2019-11-25 17.24.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260143/6fea74c7-7546-fbb0-b6b8-b97ef2c8b2a7.png)

Add a person or group 欄へ共有したUnityID（メールアドレス）を入力して`Add`ボタンでプロジェクトのチームメンバーに招待することができます。
作ったプロジェクトを見てもらいたい場合や、共同で開発する際に便利ですね。
<img width="992" alt="スクリーンショット 2019-11-25 17.27.44.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260143/934225fa-16be-f19b-5b20-d47f6e98145a.png">


### プロジェクト共有後の更新

共有してもらった相手のプロジェクトが更新されている場合は、Collabボタンの色がオレンジ色に変わり更新内容が表示されます。
`Update now!`ボタンをクリックすると自身のプロジェクトも最新の状態に更新されます。 

<img width="387" alt="スクリーンショット 2019-12-02 15.51.51.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260143/5c4fd880-1941-fbff-3aeb-ce1ee4d01453.png">


## Collaborateまとめ

CollaborateはUnityに付属しているだけあって、煩わしい設定がなく初心者でも簡単に設定できるところがメリットですね。
ただし、無料版（デフォルト状態）だと容量が1GBまでと少々容量不足がデメリットです。
勉強がてらUnityを使う分には問題ありませんが、本格的なアプリ作成となると有料も視野に入れた方がよさそうですね。




# 2. GitHubを使う方法

バージョン管理といえばGitHubですが、UnityのアセットストアにUnity版GitHubがあります。
GitHubをUnityだけで使いたい場合は、手頃にGitHubが使えて便利なツールだと思います。


## 設定方法

### アセットストアからインポートする

Assets Store にて「GitHub for Unity」をダウンロードしてプロジェクトにインポートします。
<img width="674" alt="スクリーンショット 2019-11-25 10.21.12.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260143/2e9f1681-1ee4-4177-6030-ba82bd1dd095.png">

<img width="1296" alt="スクリーンショット 2019-11-25 10.21.51.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260143/e2cec586-11e3-8c98-4df6-96f6cc631975.png">

<img width="452" alt="スクリーンショット 2019-11-25 10.22.06.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260143/19b1ac20-a9db-b994-4e46-176fa63a2a2c.png">


### GitHubウインドウを表示

ツールバーから`Window`>`GitHub`でGitHubウインドウが表示されます。
`Initialize a git repository for this project`ボタンをクリックすると自動的に初回分のコミットがされます。
<img width="219" alt="スクリーンショット 2019-11-25 10.28.10.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260143/7a7d0355-8e7e-e40f-e3de-ed221071ef95.png">
<img width="374" alt="スクリーンショット 2019-11-25 10.28.42.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260143/c2a5441c-7fb5-a1bc-0a8c-cf3e5cec0833.png">
<img width="371" alt="スクリーンショット 2019-11-25 10.29.37.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260143/b4b38524-144d-3296-28ea-73f34f567eda.png">


### Gitへコミットする

Changesタブを選択するとコミットするフォルダを選択する画面になります。
対象フォルダにチェックを入れて、「Commit summary」と「Commit description」にそれぞれコミットの概要と詳細説明を入力後に`Commit to [master]`ボタンをクリックします。

<img width="355" alt="スクリーンショット 2019-11-25 10.36.34.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260143/f899523d-d6b5-c12d-dbcd-059db4353181.png">
<img width="362" alt="スクリーンショット 2019-11-25 10.38.25.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260143/dab7e37e-1bd9-f59d-6ae9-6dff010ad03e.png">


## GitHubへPushする

### GitHubへサインインする

GitHubウインドウの右上にある`Signin`をクリックするとサインイン画面が表示されますので、アカウントを入力して`Sign in`ボタンをクリックします。
<img width="346" alt="スクリーンショット 2019-11-25 10.39.43.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260143/e120b591-3ae3-41fa-3c3b-9cc1c227b511.png">

> GitHubのアカウントはあらかじめ作成する必要があります
https://github.com/


### GitHubでリポジトリ作成

GitHubの管理画面の右上プラスアイコンから`New repository`でリポジトリ名を決めてリポジトリを作成します。
![スクリーンショット 2019-11-25 10.45.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260143/955a9f85-cc9c-fb36-878a-104f43979601.png)

リポジトリのSSHをコピーします。
![スクリーンショット 2019-11-25 10.56.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260143/0ca7927f-47d7-fce5-25a7-6eb7b6be3817.png)

### Unity側のSettingへ情報をセット

Git ConfigurationへGitHubアカウント情報をセットします。
Repository Configurationへ先ほどのSSHをセットします。
<img width="360" alt="スクリーンショット 2019-11-25 10.57.14.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260143/e8c6c7ff-d457-32bf-ed3b-2beb75cb0e39.png">

### Pushする

PushボタンをクリックしてGitHubリポジトリへプロジェクトをPushします。
<img width="532" alt="スクリーンショット 2019-11-25 10.55.14.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260143/2450d7db-270e-ee40-ad4e-93902e4327c8.png">

### Pushされたことを確認

BranchesタブにてRemoteBranchesにmasterブランチがPushされてます。
<img width="362" alt="スクリーンショット 2019-11-25 10.59.21.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260143/8e2beda2-d918-40ce-c260-665d2a50dbd6.png">

GitHubのリポジトリページにもデータがアップロードされていることが確認できます。
![スクリーンショット 2019-11-25 10.58.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260143/4a2474c5-2874-56f8-2d96-8d1b3795810d.png)


## GitHubまとめ

GitHubをまったく使ったことない場合は少々敷居が高いかもしれませんが、GitHubを使いこなせるようになると、他言語の開発でも便利です。
本来GitHubはCLIですが、GUIベースで操作できるところもUnityらしく、初心者でも扱いやすいですね。




# 3. フォルダごとバックアップする方法

最後にアナログ的な方法になりますが、プロジェクトフォルダごと外付けHDDなどにバックアップする方法です。
Unityはプロジェクトごとに１つのフォルダでまとめられ独立しているのでデータ移行は比較的簡単ですね。




# 総合まとめ
Unityでプロジェクトをバックアップできる方法をまとめてみました。
最後にそれぞれのメリット、デメリットをまとめておきますので参考になれば幸いです。

## 1. Collaborate

### メリット
* Unity付属機能で設定が楽
* バージョン管理ができる

### デメリット
* 無料で使える容量が1GBと少々物足りない


## 2. GitHub for Unity

### メリット
* GitHubという最強ツールを使えること
* バージョン管理ができる

### デメリット 
* GitHubについての知識がないと設定がやや煩雑に感じる


## 3. フォルダごとバックアップする方法

### メリット
* 特別な知識は必要としない

### デメリット
* バージョン管理できない
* バックアップ作業は手作業