码迷,mamicode.com
首页 > 其他好文 > 详细

Missing (Mono Scripting), Missing Prefab

时间:2016-07-15 13:33:12      阅读:338      评论:0      收藏:0      [点我收藏+]

标签:

开始研究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

标签:

原文地址:http://www.cnblogs.com/elfnaga/p/5672986.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!