统一时间后禁用脚本

问题描述

我有一个开机功能,可以启用播放器对象上的射击脚本。 powerup脚本在我的powerup对象上。现在,当我使用

启用脚本时
console.log()

它工作正常,但是当我尝试在5秒后禁用脚本时,它什么也没做。这是我为此使用的脚本:

player.GetComponent<ShootingRocket>().enabled = true;

我为时间做了一个变量:

void OnTriggerEnter2D(Collider2D other)
{
    if (other.CompareTag("Player"))
    {
        StartCoroutine(Pickup(other));
    }
}

IEnumerator Pickup(Collider2D player)
{
    player.GetComponent<ShootingRocket>().enabled = true;

    GetComponent<SpriteRenderer>().enabled = false;
    GetComponent<Collider2D>().enabled = false;

    yield return new WaitForSeconds(sec);

    player.GetComponent<ShootingRocket>().enabled = false;

    Destroy(gameObject);
}

我不知道我在做什么错。如果有人可以帮助您,请这样做。

如果您认为问题出在其他地方,我可以提供任何其他脚本。 我是Unity和c#的新手,通常是一种编码,所以如果有人可以提供帮助,我将不胜感激。谢谢!

解决方法

所以

  1. 检查此代码是否真正被调用,也许对撞机没有调用任何东西?
  2. 也许将'other.CompareTag(“ Player”)'替换为'other.gameObject.CompareTag(“ Player)
  3. 检查播放器是否具有正确的标签

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...