【发布时间】:2019-03-08 11:40:27
【问题描述】:
大家好,我在使用 OnTriggerEnter2D 时遇到问题。
玩家有 2 颗子弹,任何时候玩家的子弹击中敌人都应该将分数增加 100,但由于某种原因,如果两颗玩家的子弹击中敌人,则分数会增加 200。两颗子弹同时开火,位于玩家枪的两侧。所以它应该只将分数增加 100 而不是 200。
这是我的代码:
void OnTriggerEnter2D(Collider2D col)
{
if(col.tag == "PlayerBullet")
{
this.score += 100;
}
}
其他信息:
我的玩家子弹和敌人都附有 Box Collider 和 RigidBody2D。他们都选中了 isTrigger 选项。
【问题讨论】:
-
如果每个子弹值 100 并且“如果两个玩家子弹击中敌人,则分数增加 200”这听起来对我有用.. 也许你需要澄清问题?
-
对不起,不管是一两颗子弹击中敌人,它都应该只增加100分。
-
只是为了清楚。如果玩家向敌人发射任意数量的子弹,并且为了简单起见,假设它们都击中了,你只想总共击中 1 发?我只是想避免你回来说“好吧,所以玩家射了 2 发子弹,我只想记录 1 次命中,但如果他以后再射同一个敌人,我也想数数”。因为那样我们需要更多的标准。
-
我不明白你的逻辑。你说有两颗子弹,所以每次一颗子弹击中玩家,它就会增加 100。所以两颗子弹会增加 200。
-
我只想注册一次碰撞。如果您现在明白我的意思,请告诉我,非常抱歉造成混淆!
标签: c# unity3d collision-detection