本記事は大学生サークルなどの技術初心者が多くいるような組織を対象として、とっつきやすいUnity共同作業法を紹介するものです。したがって、本記事で紹介する方法は企業等で仕事として開発をする場合には適さない可能性があることにご留意ください。
具体的な対象としては、1人以上のGitとUnityにある程度精通している人が存在し、その他の人は初心者である開発チームを想定しています。
知識不足で間違ったことを書いてしまっていることがあります。お気づきの場合、ご指摘くださると非常に助かります
はじめに
本記事は、Unityプロジェクトをできるだけ簡単に共有する方法についてご紹介します。
この記事を見てチームでUnityゲーム制作を行う仲間が増えてくれると嬉しいです!
お急ぎの方や、複雑なのは嫌だという方は結論とやりかただけ見てくれれば問題ないです。
結論
「Git」は使うべきだが、使い方を限定して使おう!
変更点の共有は「UnityPackage」を使おう!!
理由
Gitというファイル管理ツールの統合(merge作業)でつまづかないためです。
UnityPacakageを使うことによって、この統合作業で苦しむことがなくなるので、とてもスムーズに開発ができるようになります。
少なくともバイナリファイルを直接いじるとかの羽目にはならないはず
Gitについて
そもそもGit関連が分からないよ!という人はまず公式ドキュメントや概要を解説しているサイト等をご参照ください!
こういったソフトウェアの共有となると、必ずファイル管理ツールであるGitが話題になります。
Gitを使うことによって、「Github」というサイトを通してプロジェクトの共有、プロジェクトのバージョン管理などができるようになります。
非常に便利なGitですが、今回対象としているようなケースでは、Git上ではファイル共有をせずに、メンバーが行った変更点をリーダーがUSB等を通してUnityPackageで受け取って、それをリーダーが自分のUnityデータに直接まとめて統合することをおすすめします。
理由としては、上記の通りGitのmergeでつまづかないようにするためです。
このmergeはGitに上げられた複数人の変更点を自動的にまとめる作業なのですが、たまに変更の競合が発生してmergeが不可となってしまいます。
こうなってしまった場合、自分の手作業で競合発生箇所を見て、必要な部分のみを残す動作が必要になります。
もうこれだけで面倒ですが、Unityプロジェクトを扱う場合、バイナリファイルという人間が読める形でないファイルで競合することが多くあります。(理由はシーン情報を扱うファイルがバイナリファイルで、ちょこっとオブジェクトを触っただけでファイルが変更されるからだと思うのですが、ここについて詳しく理解できていないため参考程度に...)
主観にはなりますが、この作業がとてつもなく面倒くさいうえにゲーム開発が進む作業でもないため億劫になります。この作業を回避することでUnityゲーム開発が楽になると思うので、メンバーがGitのcommit、push(変更点をGitにアップする作業)をすることはお勧めしません
長々と述べてしまいましたが、要は使えば超面倒な作業をスキップすることができると思ってもらって大丈夫です。
気をつけること
UnityPackageを使う場合は、メンバーに変更点を確認してから統合するようにしましょう。
そうしないとうまく統合できなくなってしまうので...
UnityPackageの使い方は?
肝心な使い方ですが、すでに解説されている方がいらっしゃいました!
簡潔に書かれているため、こちらのリンクを置かせていただきます。ぜひご参照ください!
Unity Packageを使ってみよう
ほかの方法
実はこの地獄の手動mergeをしないようにする方法はほかにもあります。
それが、「YAMLmerge」という、Unityのmergeを助けるツールを使う方法です。
ただし、こちらの方法はGit Bash(コマンドライン)を扱うため、簡単ではないと思い省略させていただきました。
リーダーの方がコマンドラインの知識に長けている場合は、こちらの方法を検討してみても良いかもしれません。(コマンドラインでは取り返しのつかない操作も容易にできてしまうので、触らなくていいなら触らないほうがいいかもしれません...)
気になった方はこちらの公式ドキュメントをご参照ください
さいごに
最後まで読んでいただきありがとうございます
この記事が少しでもお役に立てれば大変喜ばしい限りです
今年も残りわずかですが、素敵な年末をお過ごしください。
Merry Christmas!