9
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[Unity] missing prefabを再度紐づける方法

Posted at

UnityプロジェクトをGit管理しているときに
うっかりmetaファイルがgitignoreされていて、PULLしてきた時にmetaファイルが更新され、missing prefabになってしまう。
あるあるですよね

Screen Shot 2020-07-07 at 15.24.36.png

ど゛う゛し゛て゛な゛ん゛だ゛よ゛お゛お゛ぉ゛お゛!゛!゛!゛ん゛あ゛あ゛あ゛あ゛あ゛ぁ゛ぁ゛あ゛あ゛!゛!゛!゛!゛

metaファイルはignoreされており、metaファイルは一度もコミットされていないので、バックアップなど存在しません。
絶望しかありません。

シーン上のGameObjectをUnpackすれば治る的な記事を見つけましたが、治りませんでした。(赤い文字が白くなっただけ)

再度Prefabを配置し直すという選択肢も、どの値をPrefabにApplyしてあったか、記憶を頼りに復元するしかありません。
(適度にOverrideしましょうね...)

どうするか

ymlのguidを直接書き換えましょう

※自己責任でお願いします。(バックアップをとっておいてください)

Unityのバージョンは

  • 2019.3です

新しく生成されたPrefabのmetaファイルをテキストエディタで開きましょう
(一応モザイクで隠しておきましたが、必要なかったかもしれません)

(Item.meta)
Screen_Shot_2020-07-07_at_15_40_08.png
こちらのguidの値を控えておきましょう。

続いて、missing prefabが置いてあるシーンファイルをテキストエディタで開きます。
目の前に広がるymlファイル。幻想的ですね

その中からmissing PrefabになっているGameObjectの名前で検索をかけましょう (ItemというGameObject)
以下の画像の緑枠の部分です。

赤枠のguidの項目(581xxxxx)の部分が複数ありますが、それらを全て先ほど控えたmetaファイルのguidの値(cf1xxxxx)で書き換えましょう
(一つのGameObject名に複数あるようです (- targetの項目分だけ必要?))

その状態でUnityEditorに戻ります。
すると!なんとmissing Prefabが復活しているではありませんか!

私の可愛いPrafabちゃん❤️


ということで少し面倒ですが、metaファイルのguidを紐付け直してあげれば復活させることが可能でした。
記憶を便りに復活させていくよりは全然マシでしょう。

これでもうmissing prefabになったからといって、泣き寝入りしなくて済みますね!

9
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?