繁体   English   中英

Unity Respawning Setting Objects 重新激活

[英]Unity Respawning Setting Objects back active

该项目是在 Unity 2D 中制作的。

我正在开发一个统一项目,在玩家通过关卡后,我会重生我的物品。 当他没有所有的绿宝石时,他将在关卡开始时重生,我希望物品为他重生。

所以现在我正在使用:

void OnCollisionEnter2D (Collision2D col)
{
  if (col.gameObject.CompareTag("Life"))
    {
        col.gameObject.SetActive(false);
    }
}

这些对象位于一个空的 Object 中以进行澄清。 我让他们成为空的 Object “项目”的孩子。

if (ManagerVariables.IsRespawning)
        {
            if (item!= null)
            {
                for (int a = 0; a < item.transform.childCount; a++)
                {

                    item.transform.GetChild(a).gameObject.SetActive(true);

                }
            }
            else
            {
                Debug.LogError("No Objects Over Class defined");
            }

我已经检查了变量 IsRespawning 并且当玩家重生或死亡时它设置为 true,但对象不会重新出现。 我还想问一下带有多个子对象的 object 如何做到这一点,例如附加 FirePoint 的敌人

代码应该可以正常工作。 我的建议是检查 item 是否有价值。 也许 item 总是 null 并且你的循环永远不会被执行。 如果项目不是 null 我会检查孩子的数量并确保它大于 0。

关于您的多个子对象的问题,您可以单独禁用每个子对象或禁用父对象,然后所有子对象也禁用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM