首页 > 解决方案 > 当两个玩家站在两个压力板上时如何触发“获胜”事件

问题描述

所以我正在制作一个 2d 统一游戏,其中我有两个玩家在不同的房间。您同时控制两名玩家,并且两人都需要达到目标/区域才能完成关卡。

我的问题是,当一名玩家触摸该区域时,某个值设置为 true,但玩家不再需要站在该区域上即可完成关卡。我希望两名玩家必须同时站在该区域才能完成一个关卡。

如果有人知道如何做到这一点,如果您与我分享,我将不胜感激。如果你们需要一些代码,我可以添加它。

两个玩家都有相同的脚本,但目标有不同的脚本(但不一定是。我认为这样做可能更容易)而且我正在使用 c#

标签: c#unity3d

解决方案


您可以通过使用OnTriggerEnter2DOnCollisionEnter2DOnTriggerExit2D或一起确定此行为OnCollisionEnter2D。它看起来像:

private void OnTriggerEnter2D(Collider2D col)
{
    if(col.gameObject.tag == "Player")
    {
        // currently touching a plate   
    }
}

private void OnTriggerExit2D(Collider2D col)
{
    if(col.gameObject.tag == "Player")
    {
        // no longer touching a plate   
    }
}

在任何一种状态下交换布尔值都应该会给你想要的结果。您可以很容易地将其调整为您的特定用途。如果您有任何问题,请告诉我。


推荐阅读