您当前的位置: 首页 >  unity

染指流年灬

暂无认证

  • 2浏览

    0关注

    194博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Unity基于Text的快捷键修改组件

染指流年灬 发布时间:2022-08-09 21:59:34 ,浏览量:2

最近做快捷键设置,所以先要做个基础的组件。

因为听说用InputField来改造会有比较多快捷键组件的特性与InputField的特性冲突的地方,比起Text来更加地耗费精力和时间。所以用Text来做了。 请添加图片描述 主要功能包括:

  1. 获得鼠标聚焦时,准备记录键盘输入按键
  2. 快捷键记录时,过滤鼠标按键
  3. 按下Enter键或者鼠标点击快捷键组件以外的区域完成修改
  4. 按下esc键撤销修改,并退出修改
  5. 按下退格键删除改快捷键的所有键盘按键并完成修改
  6. 单个快捷键最多允许输入三个键盘按键
  7. 聚焦时高亮,退出修改低亮

逻辑是有点复杂了,分支比较多。

因为是简单组件类,后面修改的可能性不大,就只是尽量面向对象的方式,考虑单一职责原则,将该作为单个功能分出去的类分出去。

有 按键判断类 快捷键数据类 快捷键组件类 高亮控制类四个部分

只有高亮控制类没有接受业务逻辑类的控制,可能会存在高亮和业务逻辑的需求不统一的情况, 后面可以考虑加上。目前测试一切正常。

需要注意:

  1. 继承ISelectHandler和IDeselectHandler的脚本,接口的方法起效需要在脚本的同个物体上挂载Selectable组件。这两个接口的方法在组件被选中和取消选中的时候会被回调。 参考 unity中关于UGUI的接口(点击 选择 系统按键等)

  2. 代码执行取消选中物体通过 EventSystem.current.SetSelectedGameObject(null);实现,这句话不能连续调用两次,即连续写两遍,会报错。

工程地址

关注
打赏
1665909078
查看更多评论
立即登录/注册

微信扫码登录

0.0366s