Unity – AssetDatabase.CopyAsset() failed

AssetDatabase.CopyAsset() 的問題在這串也在討論這問題, 但因為這個 API 僅僅只回傳結果, 沒有其他訊息, 導致真正的原因很難被發掘出來…
該討論串是 2011 就發起, 直到寫這篇的版本 5.6.1f1 也仍舊如此.
所以只能記錄下來一些案例方便排除惹~
這類型的問題似乎也適用在類似的操作, 像是 CreateAssetMoveAsset…etc

case 1 – 目的地資料夾不存在

解法: 呼叫API之前, 事先建立目的地的資料夾.
void CreateParentFolder(string path)
{
  var folder = Directory.GetParent(path).FullName;
  Directory.CreateDirectory(folder);
}

case 2 – meta 檔損毀

解法: 修復對應的 meta 檔.
我的案例是因為該 meta 檔在同事的電腦上發生版本控管的衝突, 他就直接 commit 含有衝突資訊的檔案, 導致所有需要用到 meta 的行為都會失敗.
※這狀況會讓編輯器內的 Ctrl + D 也失效.
修復的手段有很多種, 有在使用版本控管工具的就直接 revert 即可.
暴力一點可以直接砍掉 meta 檔讓它重建, 但如果有 reference 它的連結都會斷掉.
以上, 如果你有其他案例也可以留言, 好節省大家的時間 哈哈!!

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google photo

您的留言將使用 Google 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.