我正在做一款太空射击游戏,我希望当玩家击中敌人时,伤害功能能够被调用。但是由于某些原因,每一次碰撞,包括激光和电源,都会调用伤害功能。有人知道问题出在哪里吗?我对Unity、C#和编程都很陌生,所以问题可能很明显。这是我使用的代码。如果你需要更多的细节或更多的代码,请问我。
void OnTriggerEnter2D(Collider2D other)
{
if (other.tag == "Enemy") ;
{
Damage();
}
}
对不起,英语不好,我不是本地人,还在上高中。
这是个很简单的bug。你的if语句后面有一个不需要的分号(;)。这在{}块之前结束了if语句的范围,所以每次都会运行Damage()函数。
if (other.tag == "Enemy") ;
应该是
if (other.tag == "Enemy")