我尝试做的是当它碰到一个触发的对撞机时我希望它减去一个data_format = workbook.add_format(
{
'bg_color': '#FFC7CE'
})
worksheet.write(data_row, data_col + 1, row[1], data_format)
,但是团结所做的就是减去3而不是它,我将它附加到玩家身上本身
int
答案 0 :(得分:4)
从屏幕截图来看,您的脚本多次附加到播放器 GameObject。选择您的Player GameObject,然后删除重复的脚本。 确保只附加一个脚本。它可能附在 3 次。
如果您在运行时实例化多个Player GameObjects,也会发生此问题,因为这也会复制您的脚本。
修改强>:
在评论中添加了更新的图片,问题是您的播放器上有 3 碰撞者。确实只有其中一个IsTrigger
,但如果带有 Evil 标记的GameObject也被标记为IsTrigger
,则会出现问题。
您有 2 选项可以解决此问题:
1 。使用 Evil 标记选择GameObjects,并确保没有附加的Collider标记为IsTrigger
。取消所有邪恶标记的游戏对象仅的碰撞对象上的所有IsTrigger
属性。这应该可以解决你的问题。
2.在Player GameObject上只有一个Collider。删除其他2.这也应该解决你的问题。
答案 1 :(得分:1)
触发器肯定会发生3次,屏幕截图显示(由于重复日志崩溃,右侧有3个)。
这可能是因为我认为对手的形状(圆圈)。尝试使用我们在触发器输入时设置的bool并在触发器退出时清除(甚至更新应该可以清除)。
答案 2 :(得分:0)
这是我建议调试你的问题:
void OnTriggerEnter2D(Collider2D other)
{
if(other.tag == "Evil")
{
lves.lives -= 1;
Debug.Log("U hit it", other.gameObject);
}
}
通过查看截图,您将获得3条日志消息。
始终使用“不要在控制台窗口中崩溃”来查看发生的事情