在实际开发工作中,程序员不需要去关心模型是如何制作出来的,美工人员会为我们制作好模型。但当我们在场景中使用到这些模型时,还是需要注意一些事情的。
在Unity中,制作好的模型大多是以Prefab的形式存在的,当我们在设计场景时,需要将Prefab部署至场景中完成设计。大家都知道,制作好的Prefab都拥有一些默认的属性,例如Transform组件中的Position、Rotation等等。当我们将Prefab直接拖动至Scene视图中时,就会破坏这些原来的默认值。例如下图中的Prefab就是被直接拖动到Scene视图中的,通过Inspector面板我们可以看出Position与Rotation都变成了粗体字,这代表与Prefab的原始属性存在不一致。
某些朋友可以会认为这一点无伤大雅。然而有一些Prefab之间是存在关联性的,就比如这里的Map与Terrain这两个Prefab。Map主要是地图中的一些细节,例如树木、房子等等;Terrain主要是地图的地形。这两个Prefab需要重叠使用,如果我们再像以往一样直接将它们拖动到Scene视图中,就会出现不能很好地融合的现象。例如下图,当我们换一个角度观察就发现树木、房屋等等竟然“漂浮”在空中。
那么,正确的做法应该是什么样的呢?我们应该将Prefab拖动到Hierarchy面板中。这样做既可以将Prefab部署到场景中,又不会破坏Prefab的原始属性,不失为一种好的工作习惯。