这篇短文解释了什么是Unity的预制体和它们的用处
让我们想象一下,我们想在Unity中做一个塔防游戏。首先,我们创建一个Tower GameObject,它在层次结构中如下所示:
当玩家开始游戏时,通常场景中还没有塔。我们需要的是一种方法,将我们的塔游戏对象保存到某个地方,然后当玩家想要建造一个塔时,将它们再次加载到层次结构中。
这就是预制体的用途。
让我们创建一个预制件。非常简单,我们所要做的就是将GameObject从层次结构中拖到Project区域中,如下所示:
之后,我们可以在我们的项目区看到预制件:
.
现在我们可以从层次结构中删除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,如下所示:
按下Play后,它立即将我们的塔预置体加载到游戏场景。
就这么简单!
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删