Unity 预设体自动实例化(Prefabs)

使用预设在Unity中自动创建物体


        Prefabs(预设)是一种可以被重复使用的游戏对象。当需要创建一些需要重复使用的对象时,就可以使用预设体。此篇博客将指导如何制作一个预设体,并且通过代码来实例化多个此预设体的对象。

制作预设

       只要在场景中制作了游戏对象,然后将它层次面板拖拽到项目面板中,预设即被创建了,同时该对象在层次面板中也就变成了蓝色。此时场景中的游戏对象就成为了预设的一个实例化对象。
       此处以在层次面板(Hierarchy)中创建立方体(Cube)为例,在场景中创建好立方体之后,将立方体拖拽到项目面板(Project)中 ,可以发现该立方体变成蓝色。

预设实例化

方法一:

       将刚才蓝色的预设体直接拖拽到场景面板中(或者直接拖拽到层次面板中),便可以实例化预设。实例化的对象(即拖拽出来的物体,包括之前创建的)依赖于预设,修改完预设后,实例化对象也随之被修改,删除预设后,这些实例化对象也会消失。

方法二:

        通过代码来创建预设体的实例化对象。下面以一个代码生成立方体的例子还说明预设的用途。
        创建一个名为PrefabCreate.cs脚本,在该脚本中定义一个GameObject类型的变量Prefab,用它来指向刚刚创建的立方体。然后在Update方法中调用Instantiate方法创建一个实例,代码如下:

using UnityEngine;
using System.Collections;
public class PrefabCreate : MonoBehaviour
{
	public GameObject prefab;
	void Update()
	{
		//位置
		float x = Random.Range(-10,10);
		float y = Random.Range(-10,10);
		float z = Random.Range(-10,10);
		Vector3 pos = new Vector3(x, y, z);
		//实例化
		Instantiate(prefab,pos,Quaternion.identity);
	}
}

       

  1. Instantiate方法有3个参数,第一个是需要实例化的预设,后两个是实例化后游戏对象的位置和旋转角度。
  2. Random.Range将产生=一定范围内的随机数,这里用3个-10到你0的随机数作为立方体的位置。
  3. Quaternion.identity就是指Quaternion(0,0,0),即各个轴向的旋转角度都是0 。

       最后将脚本附加到场景面板中的任意物体上(我挂在了相机上面,且创建预设体后,我把层次面板中的Cube删除了)(见下图),然后将立方体预设拖拽到脚本prefab属性上即可。运行游戏后,立方体被逐一创建。

在这里插入图片描述

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值