Missing (Mono Script), Missing Prefab


開始研究Google Cardboard SDK,下載了一份gvr-unity-sdk,用Unity打開里面的Samples: CastleDefense,導出XCode項目在iPhone上面運行,出現如下錯誤:

You've implemented -[<UIApplicationDelegate> application:didReceiveRemoteNotification:fetchCompletionHandler:], but you still need to add "remote-notification" to the list of your supported UIBackgroundModes in your Info.plist.

修改完上述錯誤再運行又出現如下錯誤:

The referenced script on this Behaviour (Game Object 'ExplosionMobile') is missing!

返回Untiy項目,看到Assets/Game/Prefabs/Cannon Ball這個Prefab里面的ExplosionMobile下面掛的腳本丟了

在檢查了Edit->Project Settings->Editor里面的Version Control設置為Visual Meta Files,Asset Serialization設置為Force Text(如果你的項目設置不是這樣,需要修改成這樣).

在項目文件目錄下選中 Cannon Ball.prefab 這個文件,用文本編輯器打開,並搜索ExplosionMobile:

從上圖可以看到m_Name: ExplosionMobile這一行上面有m_Component的數據,-  4:為Transform,- 114:為Script,即為丟失的Script,復制其后面的fileID數值11463042,並在該文件中搜索11463042,除去當前這個位置,另外一個位置,就是該Script的數據信息:

--- !u!114 &11463042這個模塊下的數據,m_Script這一行里面有一個guid,數值039587c051912eb4ead9e58344c5f3ce即為丟失的Script的guid,該guid是Unity自動生成並保存在.meta文件里面的。

在本地文件系統中搜索039587c051912eb4ead9e58344c5f3ce,結果如下:

往下拉尋找*.cs.meta,發現如下:

點擊其中一個ParticleSystemMultiplier.cs.meta,在上層文件夾中顯示出來,發現是Unity的Standard Assets: ParticleSystems里面的腳本:

在項目中導入ParticleSystems Package后,丟失的代碼即刻恢復了:

到此,丟失的Script找到了。

Missing Prefab也是類似的操作,用文本編輯器打開丟失Prefab的*.unity這個場景文件,然后搜索Missing Prefab,通過fileID在文件中查到Prefab的數據信息,分析該Prefab數據中包含哪些Component,並手動重建一個,丟失的資源文件,則根據guid在項目目錄下查找。

 

本文為原創,如果轉載請注明出處


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM