更新日志
1.0.6
破坏性变更
- 移除了
AchEngine.Extensions程序集以及Runtime/Extensions扩展方法源文件。相关扩展方法指南文档也已删除。
1.0.5
新功能
- 新增
AchTask/AchTask<T>。这是将 UniTask 与System.Threading.Tasks.Task统一为单一 API 的异步封装。当检测到com.cysharp.unitask软件包时,会自动定义ENABLE_UNITASK符号并使用 UniTask 运行;若未安装则回退到Task。提供Delay、DelayRealtime、WaitUntil、WhenAll、WhenAny、CompletedTask以及隐式转换。
文档
- 新增
AchTask的中文与英文文档(guide/async)。
1.0.4
重大变更
- 移除了
SoundManager。所有使用处都需要替换为新的AudioManager。
新功能
- 新增
AudioManager。用于替代SoundManager,提供 BGM 交叉淡入淡出(PlayBgm(clip, fadeDuration)、StopBgm(fadeDuration))、BGM 音量淡变(SetBgmVolume(volume, fadeDuration))、按通道静音(MuteBgm、MuteSfx、MuteAll)、8 通道并发播放的 SFX 池、3D 空间音效(PlaySfxAt(clip, worldPosition))。 - 新增
AchTimer。可使用AchTimer.Wait(seconds)/AchTimer.WaitRealtime(seconds)处理简单等待,而AchTimer.Start(duration)返回的AchTimerHandle提供Elapsed、Remaining、Progress(0–1)、IsDone、Cancel(),并支持直接await。支持CancellationToken与useUnscaledTime。内部的AchTimerRunner会在应用启动时自动创建,无需在场景中布置。 - 新增
UIAchTimer组件。通过Bind(handle)/Unbind()将AchTimerHandle关联到Text与Slider,实时显示进度。 - 新增
AchButtonCooldown组件。点击后立即禁用Button,并在指定时间后自动重新启用。内置倒计时Text标签以及OnCooldownStart/OnCooldownEndUnityEvent,提供StartCooldown()、ResetCooldown()、IsCoolingDown。 - 新增
AchButtonHold组件。在按住按钮期间按设定的间隔反复触发 UnityEvent。InitialDelay与RepeatInterval均可调整。 - 新增
AchDebugConsole。这是不影响 Unity 渲染线程的原生 UI 叠加式调试控制台。在 Android 上以可拖动的WindowManager叠加层运 行(需要SYSTEM_ALERT_WINDOW权限),在 iOS 上使用层级为UIWindowLevelAlert + 100的UIWindow,在编辑器中通过DrawEditorGUI()提供 IMGUI 回退。API:Show()、Hide()、Toggle()、Clear()、IsVisible。 - 新增
RedDot.ClearAll()。可一次性将所有节点的计数重置为 0。 - 为
RedDotBadge新增点击清除功能。新增Clear On Click(默认true)与Button字段,按下关联按钮时会自动调用相应键的RedDot.Clear(key)。
文档
- 修正了与源代码不一致的 15 处 API 错误:
ServiceLocator.Get<T>()→Resolve<T>()、修正UIView生命周期钩子签名(object payload)、修正CloseSelf()、移除不存在的Show<T>()/Close<T>()/CloseLayer()重载、修正AchEngineScope↔ServiceLocator生命周期示意图、修正IServiceBuilder注册语法、明示ISaveService.Configure()的所有权、从寻路文档中移除Rigidbody2D.MovePosition()引用、修正Selectable<T>.mChanged事件名、说明Build()仅支持 GET / POST。 - 为所有新功能添加完整的中文与英文文档:
AudioManager、AchTimer+UIAchTimer、AchButtonCooldown+AchButtonHold、AchDebugConsole。 - 在 RedDot 文档中补充了
ClearAll()与点击清除徽章的用法。