SuperAPI AI 工具集

unity-ui-patterns

设计与创作

查看项目

更新于 10-16 06:51

技能介绍

用途:把 Unity 游戏 UI/UX 设计意图翻译为可维护的代码结构,解决单一脚本混合取数、显示与动画导致难以扩展的问题。前置技能包括 unity-ui(UI Toolkit API、USS/UXML、数据绑定)、unity-async-patterns(异步过渡、取消)、unity-game-architecture(事件、Service Locator)。

主要能力(模式):

  1. 屏幕流架构:用 ScreenManager 基于栈的 push/pop 导航,每个屏幕实现 IScreen 的 ShowAsync/HideAsync,屏幕间互不引用,从 UXML 模板经 UIDocument 加载。
  2. View/ViewModel 分离:ViewModel 为纯 C# 类,实现 INotifyPropertyChanged,把游戏数据适配为显示数据;View 绑定 VisualElement 并订阅变更,不依赖游戏内部。
  3. HUD 架构:每个 HUD 组件实现 IHudWidget 的 Initialize/Dispose,订阅游戏事件按需更新,由 HudController 管理生命周期;HUD 使用独立 UIDocument 并通过 sortingOrder 控制层级。
  4. 反馈与动效:UIFeedback 为 ScriptableObject,配置 USS 类名与时长;UIFeedbackPlayer 添加/移除 USS 类,由 USS transition-* 属性播放动画,设计师可配置。
  5. 动态列表/网格:使用 UI Toolkit ListView 的 makeItem/bindItem 回调回收元素,数据源为 List<T> 或 IList,仅可见项存在于视觉树。

使用方式:按模式实现接口与脚手架,新屏幕实现 IScreen 加 UXML 模板,新数据源新增 ViewModel,新 HUD 组件实现 IHudWidget,新动效新增 SO 与 USS 规则。

限制与注意:屏幕栈需处理重复 push、弹出最后一个、过渡中 push 等边界;不要用 Unity 内置数据绑定做运行时游戏 UI;USS 过渡属性须设在基础状态而非触发类;HUD 根需与游戏屏幕使用不同 UIDocument。资料未提供安装命令、收费与平台信息。