【发布时间】:2020-02-04 09:26:50
【问题描述】:
所以,我创建了一个函数来存储子弹与敌人相撞时发生的情况。
public void Hit(Collider other, bool enemyInstanceTag, int enemyLife, int enemyKillPoint)
{
if (other.gameObject.CompareTag("PistolBullet") && enemyInstanceTag)
{
enemyLife -= player.damage;
player.score += enemyKillPoint;
Destroy(other.gameObject);
}
}
当我尝试使用它时:
private void OnTriggerEnter(Collider other)
{
Hit(other, gameObject.CompareTag("ERunner"), enemyRunner.life, enemyRunner.killPoint);
}
在每次击中时,生命值都会恢复到完全生命值。想象敌人的生命值是 2,当我击中它时它会降低到 1,但在下一次攻击中又从 2 开始。
但如果我运行它,健康状况良好:
private void OnTriggerEnter(Collider other)
{
if (other.gameObject.CompareTag("PistolBullet") && gameObject.CompareTag("ERunner"))
{
enemyRunner.life -= player.damage;
player.score += enemyRunner.killPoint;
Destroy(other.gameObject);
}
}
问题是我有多个敌人,我不想重复相同的代码行,所以我想创建一个函数。
提前致谢。
【问题讨论】: