上次做好的unity为什么这次打开会出现missingunity3d prefabb

Unity3D研究院之预设的使用细节(五十一) - 推酷
Unity3D研究院之预设的使用细节(五十一)
今天有个刚入门的朋友问我了几个问题,大概都是有关预设的问题,我想想我还是在博客里面总结一下吧,预设的原理我就不说了它比较简单而且网上例子也很多。
1.预设怎么取消
如下图所示,创建一个普通的立方体对象Cube ,Hierarchy视图中名子的颜色是“白色”的。同样在创建一个Prefabe ,你会发现此时立方体对象在Hierrchy视图中名子的颜色成“蓝色”了。
接着问题就来了,这个朋友就问怎么才能让Prefab(蓝色名子)的游戏对象还原成Cube(白色名子),这确实是个很细节的问题,他目前的作法是把Cube(预设)删除,从新在创建一个新的Cube对象。这样的作法确实没问题,但是多少让人感觉有点不符合逻辑。如下图所示,正确的作法应该是先选择预设的Cube对象,然后在Unity导航菜单栏中选择GameObject-& Break Prefab Instance 。
继续如下图所示,立方体对象的名子是不是变成“白色”拉? 此时如果说你想将预设还原,那么在导航菜单栏中选择GameObject -& Apply Changes To Prefab ,在看看你的Cube的名子就由变成“蓝色”。仔细观察还是有问题,请看右侧Inspector视图中下面有一个“Prefab”的标志,这说明它并没有清理干净。
如果你想彻底的还原Cube对象,那么只有一个办法就是在Project视图中删除原始Prefab对象。此时删除你会发现你的立方对象已经和新创建的没什么两样了,还有一种情况是你并没有先将立方体对象Break Prefab Instance &而是直接在Hierarchy视图中删除。如下图所,此时你会发现你的Cube颜色成红色,它表示你的Prefab已经丢失。
此时选中“红色的”Cube对象,继续在Unity导航菜单栏中选择GameObject-&Break Prefab Instance ,你会发现你的立方体对象已经和新创建的完全一样拉。
然后是Prefabe的批量应用,在Hierarchy视图中可能会有很多相同的Prefab对象,此时如果想给所有的Prefabe对象添加或删除一个组件该如何?在Project视图中找到Prefabe原始对象,直接在这个对象上添加或删除组件,它会全部应用所有Hierarchy视图中的Prefab对象们。但是这样还有问题,就是Project视图中的Prefab原始对象它并不可以在Scene视图中去预览,所以我推荐大家使用另外一种方式来批量应用Prefabe对象。
先在Hierarchy视图中选择Prefab对象中的其中一个。在右侧Inspector视图中,如下图所示,Prefab对象都有三个常用的按钮.
Select:点击后会立即定位到Project视图中的原始Prefab对象。
Revert:如果你不小心破坏了Hierarchy视图中当前这个Prefab对象,点击它可以还原至Project视图中原始Prefab对象。
Apply: 主要想说的就是这个, 如果你想批量修改所有Prefab对象,比如添加一个新的组件后,点击这个按钮可以把所有对象还有原始Prefabe对象都应用成你现在编辑的对象。
还有一种方法也可以达到这种效果,就在在Unity导航菜单栏中选择GameObject -& Apply Changes To Prefab 。
立方体、球体、圆柱体、胶囊体、面这几个是Unity自身提供的原始模型,如果你的模型是由美术自行创建的Fbx文件该如何?
.Fbx模型属于资源对象,和贴图、材质、声音属于同样类型的资源。。但是.Fbx更加的特殊,因为它可以直接拖入Hierarchy视图中并生成游戏对象。此时你会发现Hierarchy视图中它也是蓝颜色的字,但是它并不是Prefab对象,它是Mode对象。
它也可以使用导航菜单栏中的&
Break Prefab Instance ,
我建议使用的时候最好把.fbx模型对象转成Prefab对象来使用。
上面说的很多都是在编辑器模式下,下面在说说程序运行时。在脚本中可以这样动态的生成Prefab 。
Instantiate (prefab);
GameObject go = (GameObject)Instantiate(prefab, transform.position, transform.rotation);
&也可以通过Resource动态的加载Prefab原始对象,AssetBundle.load()也可以。。
Resources.Load(&Prefab&)
如果你想编辑器拓展Prefab插件的话可以使用 PrefabUtility类,它属于Editor下的类,只能在编辑时运行。比如创建Prefab对象, 替换Prefab对象,克隆Prefab对象。等等,都可以使用它。 使用起来有问题的话欢迎留言给我。
2.运行时修改游戏对象
我们知道游戏在运行的时候你在编辑器中对游戏对象做的任何操作,等停止运行时会自动重置。比如你运行的时候把某个对象的坐标重新调了一遍,停止运行的时候你会发现这个坐标又重置了。有一个比较巧妙的办法能处理这个问题, 当游戏运行的时候你把坐标调节完以后,这时Command + c 复制需要修改的所有游戏对象。然后关闭运行,Command + v 粘帖对象。 (但是要把之前的对象删除)。
最后欢迎大家一起讨论与学习。
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致Missing Prefab - Unity Answers
Navigation
Unity account
You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio.
Missing Prefab
Hey All!! I had a Particle system as a game object in my scene. I was just testing with my project so I just dragged it from the heirarchy view to a prefab inside project tab. After that I deleted this prefab. Now the game object still exists inside the hierarchy tab and also it works well, but its color has been changed to red and it shows the text missing written on it inside inspector. My question is what's the problem that its color has been changed and the text missing has appeared while it is still working OK? Will it create a bug in my game later on? If that can happen, kindly suggest me a solution, so that I can resolve the matter without making the effort of recreating the prefab as it is a tedious job.
Thanks in Advance!!
Just select your GameObject with the missing prefab connection and click GameObject --& &Break Prefab Instance& to remove the connection.
For anyone getting this error after recreating a project from a git repository - make sure the repo has all its .meta files checked in or prefab references can be lost. Contact the creator of the project (or tap yourself on the shoulder if you did it) and tell them to check everything into the repo, then resync your project and watch the errors fade away! Otherwise see the other answers.
Hint: You can notify a user about this post by typing @username
Attachments: Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.
7 People are following this question.}

我要回帖

更多关于 unity 创建prefab 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信