c# - 当两个玩家站在两个压力板上时如何触发“获胜”事件
问题描述
所以我正在制作一个 2d 统一游戏,其中我有两个玩家在不同的房间。您同时控制两名玩家,并且两人都需要达到目标/区域才能完成关卡。
我的问题是,当一名玩家触摸该区域时,某个值设置为 true,但玩家不再需要站在该区域上即可完成关卡。我希望两名玩家必须同时站在该区域才能完成一个关卡。
如果有人知道如何做到这一点,如果您与我分享,我将不胜感激。如果你们需要一些代码,我可以添加它。
两个玩家都有相同的脚本,但目标有不同的脚本(但不一定是。我认为这样做可能更容易)而且我正在使用 c#
解决方案
您可以通过使用OnTriggerEnter2D
或OnCollisionEnter2D
与OnTriggerExit2D
或一起确定此行为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
}
}
在任何一种状态下交换布尔值都应该会给你想要的结果。您可以很容易地将其调整为您的特定用途。如果您有任何问题,请告诉我。
推荐阅读
- api - oAuth 返回 400 错误请求
- ios - 使用 NSNetServices 类设置多个 iOS 设备之间的通信
- reactjs - catching error on successful api post - Axios
- spring - Spring 集成 - 重试在异常情况下建立连接
- c# - 如何在 xunit 中模拟 Db 连接?
- javascript - Javascript - 仅保留给定所需属性列表的值
- java - Spring Batch 内存泄漏 - 使用 JpaItemWriter 将 CSV 保存到数据库
- android - 根据父宽度设置recyclerview子宽度相等
- sql-server - 防止读取提交的 SELECT 中的死锁
- android - 如何从json错误中的json对象登录