Unity3D预制体(Prefabs)深度解析

一、前言

这篇短文解释了什么是Unity的预制体和它们的用处

二、用途

让我们想象一下,我们想在Unity中做一个塔防游戏。首先,我们创建一个Tower GameObject,它在层次结构中如下所示:
【Unity3D】Unity的预制体_加载


当玩家开始游戏时,通常场景中还没有塔。我们需要的是一种方法,将我们的塔游戏对象保存到某个地方,然后当玩家想要建造一个塔时,将它们再次加载到层次结构中。

这就是预制体的用途。

三、创建预制体

让我们创建一个预制件。非常简单,我们所要做的就是将GameObject从层次结构中拖到Project区域中,如下所示:

【Unity3D】Unity的预制体_ide_02
之后,我们可以在我们的项目区看到预制件:

.【Unity3D】Unity的预制体_测试脚本_03
现在我们可以从层次结构中删除GameObject,这样它就不在游戏世界中了。但由于它在项目区域,我们不会完全失去它。

四、加载预制体

如果我们想装载预制件,我们有两个选择。我们可以手动地将它从ProjectArea拖到层次结构区域,或者使用调用实例化.

下面是一个示例脚本,游戏一开始就加载Prefab:

登录后复制

using UnityEngine;
using System.Collections;

public class Test : MonoBehaviour {
    public GameObject prefab = null;
                
    void Start () {
        // instantiate the prefab
        // -> transform.position means that it will be
        //    instantiated at the position of *this*
        //    gameobject
        // -> quaternion.identity means that it will
        //    have the default rotation, hence its not
        //    rotated in any weird way
        Instantiate(prefab,
                    transform.position,
                    Quaternion.identity);
    }
}
1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.

现在我们要做的就是将测试脚本添加到场景中的GameObject中,查看Inspector,然后将public prefab变量设置为来自我们项目区域的任何prefab,如下所示:

【Unity3D】Unity的预制体_加载_04


按下Play后,它立即将我们的塔预置体加载到游戏场景。

就这么简单!



免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空