D日記

モーションアーティストの技術ブログだよ。日常も書くよ。

MENU

Unityをバージョン管理すると便利なのでは!?

今回は開発環境についての話です。

一般的には、UnityやUE4って個々のPCの「C:\Program Files」以下にインストールして使用されていると思います。

私が関わったプロジェクトでも、Unityのバージョンを各々の環境にインストールして作業していました。

で、バージョンが上がるたびにプログラマーなどが、
「Unityのバージョン上がったので、それぞれアップデートするようにしてください!」
って感じでお知らせを出します。

でも、よくよく考えたらこれってめんどくさくないですか?

ゲームエンジンをリポジトリにあげてはどうか?

ゲーム開発では、GitやSVN、perforce などを使うことが多いと思います。
そして、それぞれのプロジェクトごとに「リポジトリ」がありますよね。
そのリポジトリの中に、ゲームエンジン(Unity、UE4)を含めれば良いのではないかと思ったわけですよ!

f:id:ponta565:20180430191251p:plain

メリット

1.開発者がゲームエンジンを各々でインストールする手間が無くなる。
開発者は、指定されたリポジトリをチェックアウトするだけで、
全ての開発者と同じバージョンのゲームエンジンを使用できるというわけです。
ゲームエンジンのバージョンが上がっても、リポジトリを最新にするだけで済みます。
わざわざ古いバージョンをアンインストールして、新しいバージョンをインストールする・・・という手間が無くなるわけですね\(^o^)/

2.ゲームエンジンに不具合があった場合、前のバージョンに戻すことができる。
ゲームエンジンのバックアップが取れるというところでしょうか。

VCS(バージョンコントロールシステム)ってそういうところ便利よね

デメリット

1.Gitだと大きなデータを上げるのに不安がある。
SVNでゲームエンジンを管理するのは抵抗ないのですが、
Gitに大きなデータを上げるのは少し抵抗があります。
特に無料のBitbucketなんかは大きなデータを上げるのには厳しかったような・・・

2.レジストリへの登録とかどうなる?
ゲームエンジンをインストールした環境には、Unityのレジストリ情報が登録されているが、
リポジトリから取得した開発者のPCにはレジストリ情報が保持されていない件に関しては問題ないのか?
 → すみません、ここに関しては細かい検証はしてません・・

レジストリはUnityの設定情報とかを保存するところだよね?

実際にやってみた

今回テストした環境は、Dropboxを使用しています。
(複数人で管理するのには推奨されない危険な環境です!今回はテスト用ということで!)
f:id:ponta565:20180503193606p:plain


複数人が同時にコミットした場合に、リポジトリが壊れちゃう可能性があるんだ

まずは、リポジトリを作成します。
f:id:ponta565:20180430195153p:plain


次に、作成したリポジトリを適当なフォルダにチェックアウトします。
今回はDドライブ直下にチェックアウトしました(^ν^)
f:id:ponta565:20180430195302p:plain


そして、そのフォルダにUnityをインストールします。
f:id:ponta565:20180430194235p:plain


最後に、インストールされたUnityのルートフォルダから追加→コミットを行うことで、
他の開発者がリポジトリからインストールされたUnityをチェックアウトすることができるようになりました。(追加~コミットにかなり時間かかります)
f:id:ponta565:20180430201218p:plain
f:id:ponta565:20180430202213p:plain


別PCのDropboxで、先程コミットしたリポジトリをDLし終わったら、早速チェックアウトします。
今回は、UnityをインストールしたPCと同じDドライブにチェックアウトしました。
f:id:ponta565:20180503192807p:plain


無事、起動することができました!
(画像では、サンプルプロジェクトを開いています)
f:id:ponta565:20180503192424p:plain


これで、1つのリポジトリをチェックアウトするだけで、全ての開発者が同じバージョンのUnityを使用できるようになりました(^o^;)

確かにどちらのPCでもUnityは起動しているし、サンプルプロジェクトも開けたようだ。でも本当に大丈夫なのかなぁ。ちょっと不安は残る。

結果

・リポジトリに上げたゲームエンジン(Unity)を、別のPCでチェックアウトして起動することができた。
・インストール時のレジストリ登録とかはされていないが起動はできるみたい。

このブログのやり方で「問題があるよ!」って思われた方は、お手数ですがコメントを頂けると大変有り難いです!

免責事項

このサイトに掲載された方法を実践して発生した不具合に関して当ブログでは責任を負いかねます
もしもプロジェクトに取り入れる際は、ご自身の判断でお願いいたします!