为什么每一次碰撞,而不仅仅是标记的Enemy,都会激活这个if语句?C#在Unity中的应用

我正在做一款太空射击游戏,我希望当玩家击中敌人时,伤害功能能够被调用。但是由于某些原因,每一次碰撞,包括激光和电源,都会调用伤害功能。有人知道问题出在哪里吗?我对Unity、C#和编程都很陌生,所以问题可能很明显。这是我使用的代码。如果你需要更多的细节或更多的代码,请问我。

        void OnTriggerEnter2D(Collider2D other)
        {
            if (other.tag == "Enemy") ;
            {
                Damage();
            }
        }

对不起,英语不好,我不是本地人,还在上高中。

解决方案:

这是个很简单的bug。你的if语句后面有一个不需要的分号(;)。这在{}块之前结束了if语句的范围,所以每次都会运行Damage()函数。

if (other.tag == "Enemy") ;

应该是

if (other.tag == "Enemy")

给TA打赏
共{{data.count}}人
人已打赏
未分类

Matplotlib, matshow不与网格规格对齐,当fig大小为bi时。

2022-9-8 5:52:46

未分类

.weekday返回错误日期的最简洁的修复方法

2022-9-8 6:03:17

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索