標籤:
開始研究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在項目目錄下尋找。
本文為原創,如果轉載請註明出處
Missing (Mono Scripting), Missing Prefab