找回密码
 点一下
查看: 228|回复: 1

如何消除选择单位事件触发延迟

[复制链接]
发表于 2022-7-28 15:33:43 | 显示全部楼层 |阅读模式
本帖最后由 joenslee 于 2022-7-28 15:33 编辑

大家应该知道任意玩家选择单位这个事件会有延时 不是选择单位立马就触发(可能是因为需要同步联网玩家数据)
但是我只需要获取本地玩家当前主要选择的单位(用来切换虚拟单位,或者显示UI之类的,其实都是本地的处理,我想应该是可以消除的)

我取消了SyncSelections函数调用但是似乎还是没有办法正确的获取的选取的单位组(仍然有延迟)

有没有大佬知道解决的办法?
 楼主| 发表于 2022-7-28 15:33:44 | 显示全部楼层
我用设备事件 监控鼠标释放,
直接调用GroupEnumUnitsSelected函数来获取本地玩家选择的单位,也是不正确的 需要设置延时才行(大概需要0.24秒才能100%正确)。
isUnitSelected 也是一样(可能GroupEnumUnitsSelected 也是封装了这个判断)

  1. BJ.GetMainSelectedUnitBJ = function()
  2.     local group = CJ.CreateGroup()
  3.     CJ.GroupEnumUnitsSelected(group, CJ.GetLocalPlayer(), nil)
  4.     local main = CJ.FirstOfGroup(group)
  5.     CJ.GroupClear(group)
  6.     CJ.DestroyGroup(group)
  7.     return main
  8. end
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-11-21 19:29 , Processed in 0.057943 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表