Unity Collaborateが急に使えなくなった話
ヴォ、ブイブイラボのサドです。
今回、Unityの共同プロジェクトで大問題が発生し、作業がまったくできない緊急事態に陥りました。(2日かけて解決した)
サークルなどで共同作業を行っている方々の一助になれば幸いです。
備忘録も兼ねて……。
追記(8/5)
アバストが知らずしらずのうちにコッショリ消してくれていました。 そういえば、ビルドした実行ファイルもPhoton(PUN2)にアバストが反応していましたね。くそ。 (追記終)
【問題発生時点の環境】
- Windows 10 hp
- Unity 2020.3.6f1 (Hub経由インストール)
- プロジェクト設定のC#バージョン指定「.NET 4.x」
- UnityHub 2.4.x (忘れたけど問題発生時点で最新版)
症状と解決策
原因はおそらく複数からなり「プロジェクトの破損」 「Unity Hubのバグ」と当たりをつけてはいますが、それが定かでは有りません。また、発生原因もよくわかっていません。 そのため、無駄な操作を含むかもしれません。ご了承下さい。
【主な症例】
色々試行して症状も変化していたので、時系列で列挙します。
- プロジェクトを開いた時点で「unity_csc.batが見つからない」というエラーが出る
- それに付随してか「Unloading broken assembly ~~~」が複数出る
- プロジェクトを開いた時点で「Library/PackageCache/com.unity.collab-proxy@1.6.0/Editor/Collaborate/Collab/Presenters/...」のスクリプト群でnamespace関連のエラーがでる
【手順もくじ】
1.UnityHubのアップデート
真っ先に疑わしいのはEditorの方だろうとエラー内容を調べてみると、下のようなページが見つかりました。
Unity - Unityで作成したばかりの状態であってもエラーが出てアタッチできない|teratail
ただし僕の症例とは少々異なり、こちらは「unity_csc.bat not found」というエラーがでます。つまり上記Teratailの場合と違って編集ができません。
正常なファイルを人から貰ってコピーすることも考えましたが、それもうまくいきませんでした。
unity_csc.batをどうにかすることはできませんでしたが、UnityHubのバグであるというならばハブをどうにかしてしまえばいいとの思いつきでこれを試します。
まずは現在のバージョン――最新版!(詰んだ)
……ではなくて、UnityHubにはbeta版があるので、歯車マークから設定を開きbeta版の使用を可能にしておきます。そのままバージョンアップします。
(画像は3.0.0betaのものですが、2.x.xとだいたい同じです)
2.Unity Editorの手動インストール
ハブを片付けたところでもうひとつ懸念事項がありました。前項で調べていたときにみつけたのですが、Unity 2019系でも起きる不具合らしいです。
空のスクリプトエラーが出てコンパイルできなくなる問題について – ユニティ・テクノロジーズ・ジャパン株式会社
Editorの再インストールはもうすでに何度も試していたのですが、UnityHub2.x.x経由でのインストールで、それでは全く改善しませんでした。
3.0.0なら大丈夫かもしれませんが、ちょっと心配なハブくんを経由せずに再度再々インストールを試みます。
インストールが終りましたら、忘れずにハブに認識させておきます。どうバグろうと、ハブは便利なので意地でも使いたい。
この時点で「unity_csc.bat not found」エラーは消えてくれました。
かわりにコラボレートから怒涛のエラー。
3.リモートプロジェクトの再ダウンロード
unity_csc.bat失踪事件はどうにかなったものの、今度は「Library/PackageCache/com.unity.collab-proxy@1.6.0/Editor/Collaborate/Collab/Presenters/...」というエラーを吐きました。
どうせキャッシュがぶっ壊れているんだろうとテキトーにプロジェクトフォルダ―内の「Library」を消して再生成させてみたのですが、エラー内容は変わらず。
仕方無しにプロジェクトフォルダーを削除し、ハブを使ってクラウドから共有プロジェクトを引っ張ってきます。
DLが終わったら開いてみてコラボレートが接続されていること確認し、適当なシーンを選択してプレイモード……ちゃんと動作しました。
4.見知らぬファイル群をディスカード(破棄)
これは必要な作業なのかはわかりませんが、共有する他のメンバーへ影響が及んでしまっては二次被害がなんかヤバイことになりそうなので(語彙力)、 manifest?やらjsonやらがパブリッシュ可能な項目に列挙されていたら、それをディスカードします。(リツイートマークが半分になったみたいなマークです)
これで作業環境の復旧作業終了。
ここまでまる二日間の作業時間を潰しました。まじ勘弁願いたいものですね。