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

  • Post author:
  • Post category:其他


简介:

在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组件框中)



运行结果

在这里插入图片描述



版权声明:本文为gaoyz1原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。