预制体是什么呢。小源个人理解为一个“类”。
相信学过面向对象变成的同学都知道,面向对象的时候,一个“类”具有一类物体的共同属性,把类实例化就可以得到一个实例。
小源觉得预制体和类颇有一种异曲同工之妙。你可以把预制体实例化,实例化一个,两个三个四个,他们都具有相同的特征属性。这就有一点点复制,或者说克隆的味道了。
这也正是预制体的作用:
1.重名型 —— 快速/方便的,创建大量可以使用重复的资源,这种创建时通过预设的实例化来完成的,预设完成后可以使用
Instantiate来完成实例化,来创建多个实例,从而实现预设的重名目的,而所有实例化物体又链接到原本的预设物体中,从而修改
预设的实例化物体时所有的创建的实例化物理的参数都会随着预设物体修改的值而产生变化(更新),此又称为物体的继承性。
也可以对某一个实例物体进行单独的修改,让其与其他物体产生区别不用,此称只为物体的重载性
可以直接拖动预设物体到场景等,可以重复进行
在一个场景中有多个预设的同样的物体,可以在物体中选中该物体所属的预设物体。
2.运行实例化
可以在程序运行时来执行实例化操作。
创建预设物体,在脚本中引用预设物体。
相对而言脚本中代码也比较简洁,需要修改也比较简单只要对预设物体进行修改就可以了,不需要添加其他修改代码,
与普通脚本相比预设创建的实例化物体,全部都是预设物体的克隆,可以提高程序运行效率和节省内存空间
那么如何把一个物体变成预制体呢,通俗一点,就是把物体拖进Assets下,或者它的某个文件夹下。为了方便起见,之前小源创建了预制体文件夹“prefabs”就有了用处。从Hierarchy下直接把cube拖进prefabs中,会有什么变化呢。
可以看到,Cube名称变成蓝色的了,上面prefabs中出现了我们已经准备好的cube了。
这就表明一个预制体Cube已经做好了。
在这里我们只是为了大量复制cube,并不需要在上述的Instantiate完成实例化,不过在接下来的课程中,使用Instantiate来实例化还是会有的。
这里小源复制了两个cube,如何完成呢,选中小方块,按快捷键Ctrl+D,然后沿着水平轴拖出就有了一个新的cube
那么我想用这些小方块建立一道墙的话,该怎么比较方便呢。
这里有个小技巧,可以创建一个空物体,命名为Cubes(重命名可以选中按F2,即可重新命名)
将几个cube拖进Cubes中去(小源又多创建了两个,嘿嘿)
怎么多选呢,按住Ctrl,一个一个点击即可多选,然后整体拖进Cubes中去
然后双击Cubes选中,和之前的复制一样,按下Ctrl+D后竖直拖动,可复制整排的cube
可以看到Cubes中包含了所有cube,这样子可以快捷得复制出多个物体。
小源觉得以后应该学了一整章以后再进行总结,不会像现在一样发布的那么频繁了。
用两三篇文章的内容概述小源学习的一整章的内容。
可能会有点多。