问题描述
我有一个开机功能,可以启用播放器对象上的射击脚本。 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#的新手,通常是一种编码,所以如果有人可以提供帮助,我将不胜感激。谢谢!
解决方法
所以
- 检查此代码是否真正被调用,也许对撞机没有调用任何东西?
- 也许将'other.CompareTag(“ Player”)'替换为'other.gameObject.CompareTag(“ Player)
- 检查播放器是否具有正确的标签