Bootstrap

Unity中的Prefab Variant

prefab一共有三种形式:

  1. Prefab复制出来的Prefab1、Prefab2
  2. Prefab拖动到asset新建一个prefab3,选择original prefab方式新建
  3. Prefab拖动到asset新建一个prefab3,选择prefab variant方式新建
  • 第一种方式,这些prefab都是关联的,改动一个,其他全部关联改动。比如新建一个敌人做一个prefab,再复制两个敌人,这三个敌人就关联,改一个敌人,其他两个敌人跟着改动。
  • 第二种方式,prefab和prefab3是独立的,无关的。我们新建的prefab3可以将敌人的帽子改成绿色,而敌人prefab的帽子初始为红色。然后我们再用prefab复制出prefab01、prefab02,再用prefab3复制出prefab3.1、prefab3.2,这样,prefab、prefab01、prefab02三个的帽子为红色,prefab3、prefab3.1、prefab3.2三个的帽子为绿色。如果我想把二号敌人的帽子从绿色都改成蓝色,那好办,找一个prefab3,改它帽子为蓝色,应用,全部三个的帽子都变成蓝色了。但问题是,如果我哪天想把所有敌人的头都换成猫头,那就要改两次,找到prefab改头,这样一号敌人头就全改了,找到prefab3改头,这样二号敌人头就全改了。但有第三种方式更好解决。
  • 第三种方式,prefab和prefab3部分关联。prefab3是variant,他可以有自己独立的属性。也就是prefab有ABC属性,那么prefab3一定有ABC三个属性。但如果我改prefab3多加一个D属性,那么prefab可以不增加D。所以,就可以把公用的属性放prefab里面,这样公用改。而独特属性放prefab3里面,这样可以独立改。而且,注意,prefab3的属性数量一定要比prefab多,因为prefab3的属性是一定先继承prefab所有的属性、再加上自己的独特属性。
;