存档

2010年11月30日 的存档

Unity–预设(Prefabs)(转)

2010年11月30日 没有评论

预设是一个存储在工程视图中可重复利用的游戏物体。它可以被插入到任意数量的场景中,亦可在多次出现在同一场景中。当你添加一个预设到场景中,你就创建了一个它的实例(instance)。所有预设实例都与原始预设相关联,且本质上就是原始预设的一个克隆。
不论在你的工程中存在多少实例,当你对预设作了任何改变后,你将看到这种改变被应用到所有的实例上。不论你的预设是单一的一个游戏物体或者是一组游戏物体,在预设的变换层次中所作的任何改变都将被应用到它的实例上。

创建预设

为了创建预设,你需要建一个新的空预设。这个空预设部不包含任何物体,并且你不能创建它的一个实例。你可将它想象为空的容器,里面空间需要游戏物体数据来填充。

一个新的空预设,它不能被实例化,除非你使用游戏物体来填充它

为了填充预设,你需要利用场景中已创建的游戏物体。下面是精确的步骤。
� 在工程视图中,选择一个你要放置预设的文件夹
� 从主菜单中选择Assets->Create->Prefab,或者从工程视图的上下文菜单中选择
Create->Prefab
� 命名该预设
� 在层次视图(Hierarchy view)中,选择你要放入预设的游戏物体
� 将它们从层次使用中拖放到工程视图中在你执行了上述步骤后,游戏物体和它子物体都将被拷贝到预设中。那么,预设可以在多个实例中被重复使用了。在层次中的原始物体现在已经成了该预设的一个实例。

实例化预设(Prefab Instances)

为了在当前场景中创建一个预设的实例,从工程视图中拖动预设到场景或层次视图中。这将从预设中拷贝所有父物体和所有的子物体。这些游戏物体与预设相连,在工程视图中将使用蓝色的文本来显示它们。

其中三个物体是预设的实例

继承(Inheritance)

继承意味着当预设改变时,这些改变也将被应用到所有与之相连的物体上。例如,如果你添加一个脚本到一个预设,那么所有该预设的实例都将包含该脚本。然而你也可以修改单个实例的属性而不会破坏与预设的联系。一个链接物体检视面板中的所有公有属性都有一个复选框。这个复选框是一个重载标记(override flag)。如果该属性的重载标记被启用,表示该属性将不会受到预设改变的影响。这允许你修改实例物体并使得它们不同于它们的预设,而且又不会破坏它与预设之间的联系。

一个实例物体和非继承

一个实例物体和非继承

预设链接的去除和复位

当你在监视面板中修改一个属性的时候,该属性的重载标记会自动启用。任何对已有属性的改变都不会打断与预设的联系。然而有一些改动将断开它,下面是保持预设的基本规则:
�不能添加一个新的组件到一个实例上
�不能从一个实例上移除一个组件
�不能使用其他游戏物体作为实例的子物体如果你这样做,你将看到一个警告消息出现要求你确认。当一个实例与预设断开后,对预设的修改将不会影响到这个游戏物体。如果你特意或是意外的断了实例的连接,你可以应用你的改变到预设并重新建立该连接。这将使得预设和所有的实例都发生改变。

导入预设

当你放置了一个网格资源到你的资源文件夹中时,Unity 将自动导入该文件并生成一些看起来与预设相似东西。但它们并不是预设,只是简单的资源文件。

注意资源文件图标与预设图标是有点不同的

这个资源在场景中作为一个游戏物体被初始化。可以在该游戏物体上添加或移除组件。然而你不能将任何改变应用到资源自身上因为这需要添加一些数据到该资源物体上!如果要创建需要重用的物体,你应该将资源实例作为预设。
当你已经创建了一个资源实例,可以创建一个新的空预设并拖动游戏物体到该预设上。现在你拥有了一个连接到该物体的标准预设。
下面给出了一些详细的步骤:
� 从工程视图中拖动一个资源文件到场景或层次视图中。
� 修改该资源(例如,添加脚本,子物体,组件等等)
� 创建一个新的空预设。从菜单中选择Assets->Create->Prefab,或者从工程视图的上
下文菜单中选择Create->Prefab
� 从层次视图中拖动该物体到预设上。

分类: 游戏开发 标签: