UnityPC端UGUITab键切换

3 篇文章 0 订阅
2 篇文章 0 订阅

最近研究UGUI中inputfield中按tab键切换的功能。

开始没有想到自己实现,就在网上搜了一下。果然还真有。

以下,是我找的帖子。

https://www.cnblogs.com/feiyanstudio/articles/7326212.html

把代码拷到本地,拖到inputfield上,直接就能用了。

但是,在用着的时候,会出现在按下Tab键的时候,inputfield的光标会跳级。比如三个自上而下的inputfield,在第一个inputfield按下Tab键的时候,光标会跳到第三个里面。

经过分析之后,光标其实已经在第二个inputfield里面出现过,此时第二个inputfield会触发OnSelect事件,同时update也会接收到Tab键事件,这样就相当于第二个inputfield也按下了一次tab键。

怎么解决这个问题呢?

加个字段    private bool delayed_frame { get; set; }
在Update前面加上如下代码

  if(delayed_frame)
        {
            delayed_frame = false;
            return;
        }

同时在OnSelect里面设置delayed_frame为true。这样就屏蔽了在inputfield被选中是按下tab键的一帧(我们在手动操作下也不会,也不希望出现这样的情况)。

最后对遇到此类的问题的同行们有所帮助。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值