Unity预制体Prefab及其实例化(Instantiate)

简介:
在Unity3D工程建设中,Prefabs(预设)是很常用的一种资源类型,是一种可以被重复使用的游戏对象

  • 可以被置入多个场景中,也可以在一个场景中多次置入
  • 在场景中增加一个Prefab,就是实例化了一个Prefab
  • 所有的Prefab实例都是Prefab的克隆,在运行中生成的对象会有Clone标记
  • 只要Prefab原型发生改变,所有的Prefab实例多会发生变化

Prefabs用法,创建可复用资源,例程开始:

搭建基础场景

地板 floor,在其上方放置立方体Cube,调整好摄像机角度和位置,加上DirectionLight(平行光)
Cube添加上刚体属性(Component -> Physics ->Rigidbody )

创建预制体Prefab

在Project窗口创建,右击Create ->Prefabs,创建预制体文件夹。
在Hierarchy窗口中将Cube拖拽到Prefabs文件夹中,可看到Hierarchy中的Cube变成了蓝色,预制体便制作完成。

可以Ctrl + p运行程序,将Prefabs中的Cube直接拖动到Hierarchy中,便会看到两个一模一样的Cube,多次拖入,
便会有多个Cube

批量创建预制体
using UnityEngine;

public class TestPrefabs : MonoBehaviour
{
    public GameObject cubeObject;

    //void Start()
    //{
    //    Instantiate(cubeObject, transform.position, transform.rotation);
    //}

    void Update()
    {
        Instantiate(cubeObject, transform.position, transform.rotation);
    }
}

然后将改脚本挂在到Cube上,成为其组件的一部分,然后将预制体中的Cube填充GameObject cubeObject(将其拖动到public组件框中)

运行结果

你可能感兴趣的:(Unity)