个性化阅读
专注于IT技术分析

Unity预制件和实例化解释和示例

实例化和销毁角色或对象在任何游戏中都很常见。实例化意味着使对象存在。在游戏中出现或生成对象, 敌人死亡, 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()
        {
            if (Input.GetKeyDown(KeyCode.Space))
            {
                Instantiate(Diamond);
            }
        }
}

在上面的程序中, 我们使用Input类的GetKeyDown方法来检查玩家是否在最后一帧期间按下了特定按钮。如果在该帧中按下了由KeyCode枚举指定的键(用于列出标准键盘上所有可能的键), 则GetKeyDown()方法将返回true。

保存脚本。现在, 通过在”层次结构”选项卡上右键单击场景, 创建一个空的GameObject。

了解预制件和实例化

从”检查器”选项卡将该脚本文件(Instantiator.cs)附加到新创建的GameObject的组件。

现在, 在我们创建的预制变量”Diamond”变量中。

了解预制件和实例化

现在运行游戏时, 按空格键将创建一个新的Diamond对象, 该对象与我们用来创建预制件的对象相同。你可以看到在对象层次结构中创建了每个菱形。你看不到它们出现在游戏中的原因是, 暂时而言, 它们都是完全相互创建的。但是你可以从”层次结构”选项卡进行验证。每次按空格键时, 空格键都会在选项卡中显示为菱形(克隆)。

了解预制件和实例化

赞(1)
未经允许不得转载:srcmini » Unity预制件和实例化解释和示例

评论 抢沙发

评论前必须登录!