[Unity教程](代替Find查找函数的)实例化instance的重要性以及详细说明

实例化instance的重要性以及详细说明

本文主要是,讲解 实例化instance 在实际应用中的 重要性 ,以及如何使用。


在 实际应用中,经常 要 查找 Manager管理物体,用于 调用参数,

GameObject.FindGameObjectWithTag

通过标签,或者 名字 查找 物体。

通过这种方式 查找 的效率 太低。


而  实例化instance 则是一种 高效的方法,因此广泛应用 在 调用 其他 的物体 这样的情况下。


-----------------------------------------------

比如 要查找 名字为 Player 的物体

这个Player 的物体如下图所示,没有设置 Tag标签 ,也可以快速查找

[Unity教程](代替Find查找函数的)实例化instance的重要性以及详细说明_第1张图片

GameObject.FindGameObjectWithTag

通过标签,或者 名字 查找 物体。

通过这种方式 查找 的效率 太低。


就使用 实例化instance 来进行查找。


每个场景中 要有一个 GameManager 物体,用来 快速查找物体。

如下图所示 GameManager 物体 挂载了 很多 Manager 管理的 脚本.cs,并把玩家 物体 进行设置

[Unity教程](代替Find查找函数的)实例化instance的重要性以及详细说明_第2张图片

GameManager 物体 的 PlayerManager 主要设置 如下图所示

[Unity教程](代替Find查找函数的)实例化instance的重要性以及详细说明_第3张图片


#region 和 #endregion 之间 的 代码,才是 实例化instance 的主要 代码,缺少则 无法正常 调用 实例化instance

//初始化
    #region Singleton

    public static PlayerManager instance;

    private void Awake()
    {
        instance = this;
    }

    #endregion

    public GameObject player;



在 任意 一个 物体 的 挂载 的脚本中 把 下面 两行 代码 放入 Start 函数中

PlayerManager playerManager;

        playerManager = PlayerManager.instance;
        playerManager.player = null;

[Unity教程](代替Find查找函数的)实例化instance的重要性以及详细说明_第4张图片


点击运行,查看 运行的 结果,运行的结果如下图所示

[Unity教程](代替Find查找函数的)实例化instance的重要性以及详细说明_第5张图片


这个测试说明:GameManager的物体 的 PlayerManager脚本 的 Player 成员,可以通过 另外 一个脚本 的 实例化,进行 调用 其 公共成员。

-----------------------------------------------








你可能感兴趣的:(Unity教程)