1.6.4
Build Date: 2026-07-07
🚀 Features
- Key Font Size: New
KeyFontSizeslider (8–72) replaces hardcodedfontSizeMax=20. Adjust key label text size live — fixes Tab (⇥) and Space (␣) rendering too small without<size>tag hacks. - Key Press Animation: Keys shrink smoothly on press, return on release (80ms lerp coroutine). Toggle
EnablePressAnimation, adjustPressAnimationScale(0.5–0.95), and optionallyEnablePressAnimationOnRainso rain drops animate together. Visuals wrapper isolates scaling from rain containers. - Per-Key Ghost Rain Color: New
PerKeyGhostRainColorarray with dedicated color picker in per-key color editor — set each key's ghost rain color independently from normal rain.
🐛 Bug Fixes
- 14K back row alignment: Corrected to match "16K cut off outermost columns" —
BackSequence14={13,9,8,10,11,12}with keys centered at columns 1–6 (x=54–324). Per-key counts stay at consistent screen positions when switching between layouts. - Rain container no-sharing: Each key keeps its own RainLine;
ShareRainContainernow only adjusts X offset and width for front-column alignment instead of destroying/redirecting. Eliminates Z-order issues between rows without Canvas sorting hacks. - Canvas.sortingOrder removed:
FixRainContainerSortOrder()removed — caused rain containers to override parent-key layering. GraphicRaycaster also removed from RainLine (unnecessary). - RainGraphic shadow gradient: Shadow quad changed from solid-color
AddQuadtoDrawRainQuad— follows the top-edge gradient fade along with main rain and outline. - 24K back sequence: Corrected
BackSequence24to match row 2/row 3 layout order. - AutoAssignRainbowColors: Refactored to assign colors per-layout key count (+ foot keys + KPS/Total) instead of sequential index.
- Animation null-guard: Added
if (animTarget == null) yield break;in coroutine to prevent NRE on destroyed keys. - NRE on load: Color array initialization uses
SafeEnsurehelper;InitPerKeyColorsrain color loop usesfootBase.
🧹 Refactor
- FootKeyBase fixed to 24: Removed conditional (was
Key24 ? 24 : 20). V3→V4 migration shifts foot key data from indices 20 → 24 for all profiles. - Image-based rain shadow/outline: Added
shadowImage/outlineImagechild objects on Rain withSetupShadow/SetupOutlinemethods. Gradient texture synced to all three images. - EnsureColorArray/SafeEnsure: Unified helper replaces per-field null checks for color arrays.
- PerKeyTypeOrder extended: Includes type 7 (ghost rain color) for main keys.
- Settings.Version bumped: 3 → 4 for foot base migration.
🚀 新功能
- 按键字号滑块:新增
KeyFontSize滑块(8–72),替换硬编码fontSizeMax=20。Tab(⇥)/Space(␣) 直接拉大字号即可,不再需要<size>标签 - 按键按下动画:按下时按键平滑缩小,松手恢复(80ms lerp 协程)。
EnablePressAnimation开关、PressAnimationScale缩放比例(0.5–0.95)、EnablePressAnimationOnRain控制雨滴是否跟随。Visuals 包裹层隔离缩放,雨滴容器不受影响 - 每键鬼键雨滴颜色:新增
PerKeyGhostRainColor颜色数组,每键颜色编辑器中增加鬼键雨滴色块,独立于普通雨滴颜色
🐛 Bug 修复
- 14K 后排按键位置修正:按"16K 裁掉最外两列"重排,
BackSequence14={13,9,8,10,11,12},键位居中于 columns 1–6(x=54–324)。切换布局时各键计数位置不变 - 雨滴容器不共享:每个按键保留自己的 RainLine,
ShareRainContainer只调 X 偏移和宽度对齐前列,不再销毁/重定向容器。消除排间 Z-order 问题,不再需要 Canvas.sortingOrder hack - 移除 Canvas.sortingOrder:
FixRainContainerSortOrder()已删除——导致雨滴覆盖父级按键层级。同时移除 RainLine 上不必要的GraphicRaycaster - 阴影跟随顶部渐变:
RainGraphic阴影从AddQuad纯色块改为DrawRainQuad,和描边、主体一样受渐变影响 - 24K 后排序列修正:
BackSequence24修正为正确 layout 顺序 - AutoAssignRainbowColors 重构:按当前布局键数 + 脚键 + KPS/Total 分配颜色,不再用顺序索引
- 动画协程 null 保护:添加
if (animTarget == null) yield break;,防止销毁后的按键空引用崩溃 - 加载时 NRE 修复:颜色数组改用
SafeEnsure初始化,InitPerKeyColors雨滴颜色循环使用footBase
🧹 重构
- FootKeyBase 固定为 24:移除条件判断(原
Key24 ? 24 : 20)。V3→V4 迁移将脚键数据从 index 20 移动到 24(含多 Profile 迁移) - Image 版雨滴阴影/描边:Rain 对象添加
shadowImage/outlineImage子对象 +SetupShadow/SetupOutline方法,渐变纹理同步到三个 Image - EnsureColorArray/SafeEnsure:统一辅助函数替代逐个字段的空值检查
- PerKeyTypeOrder 扩展:主键增加 type 7(鬼键雨滴颜色)
- Settings.Version 升级:3 → 4,支持脚键基地迁移
Full Changelog: 1.6.3...1.6.4