实例化和销毁角色或对象在任何游戏中都很常见。实例化意味着使对象存在。在游戏中出现或生成对象, 敌人死亡, GUI元素消失以及场景始终在游戏中加载。
当你要在运行时实例化复杂的GameObject或GameObject的集合时, 预制件非常有用。与使用代码从头开始创建GameObjects相比, 使用代码实例化预制件更好, 并且具有许多优点。
让我们了解什么是预制件。因为预制对于理解实例化在Unity中的工作原理很重要。
预制件就像GameObject的蓝图。因此, 可以说, 预制件是GameObject的副本, 可以复制并放入场景中, 即使在创建场景时不存在它。换句话说, 可以使用预制件动态生成GameObject。
让我们创建一个预制件;为此, 你需要将所需的GameObject从场景层次结构拖到项目Assets中。
现在, 要实例化GameObject, 我们在脚本中调用Instantiate()方法。 MonoBehaviour中提供了此方法, 该方法将GameObject作为参数, 因此它知道要创建或复制哪个GameObject。对于更改新实例化的对象的变换以及育儿, 它也具有不同的替代。
现在, 创建一个名为Instantiator.cs的新脚本, 并在其中复制以下代码。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Instantiator : MonoBehaviour
{
public GameObject Diamond;
// Update is called once per frame
void Update()
{
i