UnityプロジェクトのGitHubでの管理についてまとめています。
GitHub for Unityの導入方法
GitHub for Unityは、Unity用のGitHubプラグイン。オープンソースで、無料で利用できます。複数メンバーと共同作業するチームで、コード修正・マージの競合をさけつつ作業を進められます。
コマンドラインインタフェースを使わずに、UnityからGitHubでソースコード管理ができるというものです。
しかし、このプラグインの更新は2年前から途絶えている点が気になります。最新のUnity 2021での動作確認は行われていないようですので、業務用の開発に使用するのはやめておいた方が良いかも知れません。
Unityで開発したソースコードだけを、GitHub Desktopなどと組み合わせてバージョン管理するのが現実的と考えられます。
【関連記事】
▶GitHub DesktopはWindows用Gitツール インストールと使い方の解説
当記事では、インストールから初期設定をおこなうところまでを解説します。
GitHub for Unityの公式ページは以下の通りです。
関連)GitHub for Unity | Bring Git and GitHub into Unity
公式ページもしくは、Unity Asset Storeからダウンロードできます。ここでは、公式ページからの手動インストールをおこないます。
GitHub for Unityは、「アセット」という形で提供されていて、プロジェクトごとに毎回アセットのインポートを実行する必要があります。Unityが起動している状態で、ダウンロードしたGitHub for Unityを実行すると、Import用のウインドウが表示されます。
Import Unity Packageウインドウの右下のImportボタンをクリックします。
画面上部のWindowメニューに、GitHubが追加されます。Window→GitHubを選択します。
初回はインストールが実行され、しばらく時間がかかります。インストールが完了したら、GitHubタブにて初期設定をおこないます。
- Git ConfigurationのName、Emailを入力
- Settings画面の右上のSign inをクリック
- Authenticateにて、GitHubのUsernameとPasswordを入力し、Sign inボタンの下の青い文字列(見にくいのですが、Sign in web your browserと書いてあります)をクリック
Authenticateのウインドウで、Sign inボタンをクリックすると、Not Foundと表示されログインに失敗します。理由は不明で、おそらくGitHub for Unityプラグインが、新しいUnityに対応していないと思われます。
GitHub for Unityのissueのページにも上記の不具合が報告されていて、多くの人が同じ状況に陥っているようです。解決方法は、Sign inボタンではなく、Sign in web your browserという青い文字列をクリックすることです。しかし、背景色と青で見づらく、「そんな文字列は表示されていない」という声もあがっています。
When I sign in from dialog, error message “Not Found” appears.
Username and password is correct.What’s wrong?
※ダイアログでサインインしようとするとNot Foundというエラーが表示されます。ユーザ名とパスワードは合っています。何が悪いのでしょうか?
参考)“Not Found” on signing in · Issue #1137 · github-for-unity/Unity · GitHub
GitHubのInitializeパネルで「Initialize a git repository for this project」ボタンをクリックします。(GitHubにSign inするまではグレーアウトしてクリックできない状態になっています)
GitHubパネルのSettings画面で、リモートリポジトリを登録します。まず、GitHub上でプロジェクト用のリポジトリをあらかじめ作成しておき、Repository ConfigurationのRemote: originにリポジトリのURLを入力します。
これで、GitHubパネルにFetch、Push、Pullなどのボタンが出現し、git機能を実行できるようになります。Branchの作成も可能です。
GitHub for Unityの不具合やバグ
GitHub for Unityでfix・対応されていないissueは以下の通りです。
- UnityContainerが参照しているRuntimeが、最新バージョンではありません
- PlayerInputManagerは、トリガーされた最初のデバイスのみを接続します。
- 新しいリポジトリにプッシュできません
- Unity2020.6でスクリプトがデバッグ/実行されていません。
- UnityDarkテーマに互換性がありません
- ローカルで何もコミットできません
- Unityハブを開くたびにl8censeをアクティブ化する必要があります
- サインイン時に「見つかりません」
- GitHubコマンドラインオプションは、zshではなくbashを開きます
- macOSファイルは署名されていません
- Ubuntu20.04の2019年と2020年の両方でログイン失敗エラー
- ゲームウィンドウを最大化し、ゲームをプレイし、再度最小化すると、Unityによってエディターのレイアウトがリセットされます。
- ブランチ変更時にUIを描画する際のNullreference例外エラーアバランシェ
- Unity2020.1.2のPackageManagerのエラー
- ブランチを変更することはできません
- サインインできません
- ウィンドウのドロップダウンにGithubオプションがありません
- コミットを元に戻すときにエラーが発生しました
- サインアウトしてブラウザで再度サインインを使用するときのバグ
参考)Issues · github-for-unity/Unity · GitHub
Asset Storeでの評価は、5点満点中3。
直近では低評価が多いように思えます。
「UIが正しく機能せず(そして非常に混乱します)、コミットがまったく送信されない、進行状況が完全に失われる、メンテナンスがまったくない、リストが続きます。他の代替手段(Githubデスクトップなど)の方が優れています。」
「使用しないでください。使用すると、すべての作業が失われます。」
その一方、「使いやすい」「いくつかバグがあるが、時間の短縮になった」という意見もありました。
関連)GitHub for Unity | Unity Asset Store
まとめ
- GitHub for Unityは、GitHubでUnityのソースコード管理を行うためのプラグイン
- GitHub for Unityは、アセットとしてUnityプロジェクトごとにインポートを行う必要がある
- GitHub for Unityは、2019年以降メンテされていないため、不具合やバグが存在する可能性あり