Unity3D之克隆游戏对象与创建预制详解
发表于2019-01-22
一、克隆游戏对象与创建预制的区别









在Unity3D当中,为了快速复制出游戏对象,主要有克隆游戏对象与创建预制两种方法。
两者区别在于:
1、克隆游戏对象需要场景中有被克隆对象,而创建预制只需事先创建预制即可,允许场景中一开始并不存在该游戏对象。
2、克隆出来的游戏对象并不会随着被克隆体的变化而发生变化,但是使用预制创建出来的对象会随着预制的改变而发生改变。
二、克隆游戏对象
1、首先,在场景中创建被克隆对象Cube

2、在主摄像机上挂载复制脚本

3、在脚本的inspector中指定被克隆对象cube


4、运行结果

三、使用预制创建对象
1、首先在场景中创建一个Cube并将其拖入创建的文件夹prefabs当中创建预制(注意:使用预制创建对象也有两种方法,第一种类似上述方法,在inspector的脚本设置中选定所创建的预制作为复制母体;另外一种是直接使用resources.Load()方法读入预制。当使用第二种方法时,由于Unity3D的设置,请务必在Assets下面创建Resources文件夹,然后再创建其他自定义文件夹)
2、在主摄像机上挂载复制脚本并选择预制作为复制母体(方法一)


可以看到如下图,场景中并没有原来的游戏对象,只有用预制创建出来的复制体

在主摄像机上挂载复制脚本并选择预制作为复制母体(方法二)

3、前一种方法的优势在于可以减少因为路径输入错误而带来的问题;而后一种方法可以免除预制类型的区别,直接输入路径即可。