Unityの機嫌が悪くなった時の対処


急にUnityEditor上で以下のようなログが出始める。なんのことだかさっぱり。

Asset '/Applications/Unity4.6.8p4/Unity.app/Contents/UnityExtensions/Unity/GUISystem/4.6.8/UnityEngine.UI.dll' is in timestamps but is not known in guidmapper...

上記の中で触れられているように、Assets->Reimport Allを実行してみる(20分近くかかります。なんならUnityが落ちますが、再度立ち上げなおせば処理が再実行されます)。

これ以外に、Unityを停止させた状態で プロジェクト直下にある Library配下のファイルを全て消す事でも同様の処理が行われるものと思われます(但し、この方法だとswitch platformしていた環境がPC Mac & Standaloneにもどってしまいます)。

これですっきり解決。
なのですが、なぜ機嫌を悪くされたのかは不明なので、再発したらもう一度調査してみる事にします。
(おそらく、git pull などで巨大なマージが走り、Assets配下が一気に書き換わりすぎて事故った、みたいなケースなのかな…と思ってます。普段はgit pullする際にUnity落としたりしてないのですが、大きめの更新が走る事がわかっている場合は一旦Unityを落としてからgit pullした方がいいかもしれませんね)