当我只想减去一个时,团结减去额外的数字

时间:2016-09-20 15:49:05

标签: c# unity3d unity5

我尝试做的是当它碰到一个触发的对撞机时我希望它减去一个data_format = workbook.add_format( { 'bg_color': '#FFC7CE' }) worksheet.write(data_row, data_col + 1, row[1], data_format) ,但是团结所做的就是减去3而不是它,我将它附加到玩家身上本身

int

3 个答案:

答案 0 :(得分:4)

从屏幕截图来看,您的脚本多次附加到播放器 GameObject。选择您的Player GameObject,然后删除重复的脚本。 确保只附加一个脚本。它可能附在 3 次。

如果您在运行时实例化多个Player GameObjects,也会发生此问题,因为这也会复制您的脚本。

enter image description here

修改

在评论中添加了更新的图片,问题是您的播放器上有 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条日志消息。

始终使用“不要在控制台窗口中崩溃”来查看发生的事情

enter image description here