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

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

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

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

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

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


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

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

需要注意:

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

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

工程地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

染指流年丨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值