Unity——在Button上增加公有CD,解决连点、误点问题

为了解决Unity游戏开发中的连点和误点问题,本文提出了两种策略。一是当发送服务器请求时锁定按钮,等待服务器响应后再解锁;二是通过扩展Button组件,添加公共冷却时间,确保在设定时间内无法进行二次点击。这种方法适用于处理道具使用、互斥按钮等场景,减少了因网络延迟导致的错误操作。
摘要由CSDN通过智能技术生成

问题描述:

1.在开发过程中,服务器延时情况下可能会出现由于连点造成的问题,例如:当前有一个道具,使用这个道具可以召唤一个英雄,点击使用后向服务器发送消息,正常情况下服务器消耗该道具后将没有道具进行下一次召唤,但当网络延迟或其他情况下,客户端未能及时更新数据,再一次点击使用道具,再次服务器发送消息,此时的道具是不足的,可能会造成其他影响。

2.同一个界面存在互斥按钮,两者不可同时点击,在移动端,可以两个手指同时点击不同按钮,可能会造成错误

解决方案:

两种解决方案:

1.每次向服务器发送消息将该按钮锁死,当服务器消息返回再将按钮解开,即可避免该问题,但是工程量较大,每个按钮都要进行处理。

2.写一个Button的扩展方法,给所有的button增加一个公有CD,在CD中不可进行二次点击。

/*
        Button 的 AddListener 是在监听列表里面增加一个 Action,不是替换
        如果这个 Button(或面板)被复用,再次 AddListener,其上会有两个 Action,新增的在最后
        在触发这个事件时,两个 Action 会先后被执行

        昨天增加的按钮连点处理,实际上是给所有按钮增加了一个共CD
        所以会导致新增的 Action 正好在 CD 内
        暴露出了这个问题
        这也有可能是点一次发多次消息的问题

        新增扩展方法:AddListenerEx
        使用方
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值