過去バージョンのプロジェクトをUnity2018で開いたらエラーが出た件
5.6で作ったプロジェクトをUnity2018.2で開いたところ、以下のようなエラーが大量に出力されました。
————————-
Failed to change file flags for ‘/Applications/Unity2018_2/Unity.app/Contents/Resources/(続く)
(続き)PackageManager/BuiltInPackages/com.unity.modules.ai/package.json.meta’. errno: 13
————————-
どうやらパッケージマネージャでエラーが出てるみたい?
このエラーについて調べて解決したのでメモ。エラー番号13は権限の問題のようですよ。
環境
macOS 10.13 High Sierra
Unity2018.2.1f1
発生した事象
Unity5.6時代に作成したプロジェクトをUnity2018.2で開きました。
アセットガン積みのプロジェクトだったので30分くらい放置してからエディタを見ると、以下のメッセージが大量に出力されました。
————————-
Failed to change file flags for ‘/Applications/Unity2018_2/Unity.app/Contents/Resources/(続く)
(続き)PackageManager/BuiltInPackages/com.unity.modules.ai/package.json.meta’. errno: 13
————————-
このブログだと上のメッセージを折り返してくれなかったので、途中で改行しています。
画面で見るとこんな感じ。「今からこれをデバッグするのか……? えっ本当に?」と憂鬱な気分に浸れます。地味にobsoletedのWarningが大量にあるのもじわじわ来ます。ウボァー
なんかこう、「何もしてないのに壊れた」って言いたい気持ちになりました。
対応
パッケージマネージャで何かあったんだろうなーと思いつつも、まずはそのままググることに。
うん、フォーラムにそのままドンピシャな記事がある様子。トップにあるってことは、みんな経験してるのね。
英語だからざっくり拾うけど、Unityの中の人が答えているのを見ると、err13はpermission denied. つまり権限が無いみたい。
私の場合はUnity2018.2をインストールした後にフォルダ名を変えたのでそのせいか? という疑念が生まれたものの、フォーラムではデフォルトのパスでも起きているようなので違うのかも。
他のレスを参考に、以下のパスで権限を確認。
私はUnityのフォルダ名を変えているので、その下にあるUnity.appの中身を確認しました。確認対象はエラーメッセージに出て来ているBuiltInPackagesです。
ファイルの所有者はユーザではなくrootになっていたので、そのせいで読み込めなかったっぽい。
なので、sudoで権限を変更することに。
$(whoami)でwhoamiコマンドの実行結果を受け取って、それをBuiltInPackagesの所有者に設定しています。最後に[ls -l]で権限を確認しておくとベネ。
権限が変更されたらUnityを起動して、再度プロジェクトを開きます。
……おお! 消えてる!
正確にはUnityTestToolsを使っていたのでそのエラーも出ていたのですが、それは消せばOKだったので問題なし。
他のバージョンだと?
Unity2018.1でもBuiltInPackagesのディレクトリがあるので、同様の問題が起こるかもしれません。
Unity2017ではBuiltInPackagesが見つからなかったので、インポート時にこの権限エラーが出ることは無い……はず。
出ると結構ビビるけど、対策はあるのでなんとかなります。
まとめ
今回はUnityのパージョンアップに関連する権限エラーの対策でした。
Unityのバージョンアップはどんどんすべきだけど、過去のプロジェクトについては安易にアップデートすると壊れる危険性があるので、複数バージョンのUnityを保持しておくと安心かも。
あと、新しいバージョンのUnityで過去のバージョンで作られたプロジェクトを開くならバックアップはしておこう! お兄さんとの約束だぞ! (1敗)
ゲーム開発の攻略チャートを作りました!
-
前の記事
今だからこそ好き勝手妄想しながら語りたい真女神転生1の世界【Part1】 2018.08.02
-
次の記事
Unity2018でもInspectorウィンドウでSliderをいじると警告が…… 2018.08.05
コメントを書く