用途
该技能用于在 Roblox 中构建或调试用户界面,主要包括屏幕叠加层(HUD、菜单)和世界空间界面(表面、广告牌)。涵盖 GUI 容器选择、响应式布局、输入处理、ViewportFrame 预览以及 UI 中的粒子效果。
主要能力
GUI 容器选择
- ScreenGui:屏幕叠加层,父级设为 StarterGui 可自动克隆到每个玩家的 PlayerGui。可通过 .Enabled 控制可见性,.DisplayOrder 控制层级,.ScreenInsets 适配安全区域(默认 CoreUISafeInsets 会避开顶部栏和设备刘海)。所有交互逻辑仅限客户端(LocalScripts 或客户端 ModuleScripts)。
- SurfaceGui:世界空间中部件表面的界面,可直接父级到 BasePart(使用 .Face)或放在 StarterGui/PlayerGui 中通过 .Adornee 指向部件。交互按钮需最终位于查看玩家的 PlayerGui 下,且部件的 CanQuery 为 true。适用于终端、车辆仪表盘、键盘、标牌等。
- BillboardGui:始终面向相机的世界空间界面,通过 .StudsOffset 和 .StudsOffsetWorldSpace 控制偏移,尺寸以 studs 表示。适合名牌、浮动血条、任务标记、伤害数字等。交互元素同样需要 PlayerGui 祖先规则和 .Active = true。
- 其他:CoreGui(Roblox 自有,通过 StarterGui:SetCoreGuiEnabled 控制)、ViewportFrame(在 2D 矩形中嵌入 3D 相机和世界,适合物品预览,但真实的 ParticleEmitter、Beam、Trail 在此不渲染)。
布局对象与修饰符
- 容器:Frame 或 CanvasGroup(支持 ClipsDescendants、AutomaticSize 等)。
- 显示:TextLabel、ImageLabel。
- 交互:TextButton、ImageButton(优先使用 Activated 事件)。
- 输入:TextBox。
- 滚动:ScrollingFrame。
- 3D 内容:ViewportFrame。
- 布局对象:UIListLayout、UIGridLayout、UIPageLayout,支持自动排列、Flex 特性等。
- 外观修饰符:UIStroke、UIGradient、UICorner、UIPadding、UISizeConstraint、UIAspectRatioConstraint、UIScale、UIFlexItem。
- 定位基础:优先使用 Scale 而非 Offset,使用 AnchorPoint 控制轴心,ZIndex 和 DisplayOrder 控制层级。
交互模型
- 按钮优先使用 .Activated(跨平台)。
- TextBox 具有 FocusLost、Focused 等事件。
- 支持 2D 和 3D 拖动检测器。
- ProximityPrompt 用于 3D 世界中的交互提示。
- 可通过 StarterGui:SetCoreGuiEnabled 控制默认 UI。
UI 中的粒子效果
- 真实的 ParticleEmitter 位于 3D 世界,不渲染在 ScreenGui 中。
- 2D UI 粒子选项:脚本化 2D 粒子池(ImageLabels + TweenService)、ViewportFrame 嵌入(内部 3D 部件但无真实粒子)、CanvasGroup + 快速补间、UIStroke + UIGradient 动画、文本 + MaxVisibleGraphemes 配合小图像粒子。
- 性能注意:移动端避免过度透明填充,复用实例,使用较小纹理,在低画质下测试。
响应式布局
- 在标准分辨率下设计,但用 scale + 约束实现。
- 使用 UIListLayout + AutomaticSize + Padding 自动排列。
- 针对不同设备可使用多个 ScreenGui 变体或单一弹性布局。
- 使用 Style Editor + StyleRules 进行统一样式管理。
使用方式
该技能提供了详细的参考文档,包括 GUI 容器选择、布局、粒子效果等。用户需根据具体需求选择容器和布局方式。具体安装命令和代码示例在资料中暂未提供。
适用场景
适用于 Roblox 游戏开发中需要构建 HUD、菜单、世界空间界面(如终端、仪表盘、名牌、任务标记)的场景。也适用于需要响应式布局、跨平台输入处理、UI 中粒子效果以及 ViewportFrame 预览的任务。
限制
- 所有 ScreenGui 交互逻辑仅限客户端。
- SurfaceGui 和 BillboardGui 的交互需要满足 PlayerGui 祖先规则和部件的 CanQuery 为 true。
- ViewportFrame 中真实的 ParticleEmitter、Beam、Trail 不渲染。
- 移动端性能受透明过度绘制和填充率影响。
- 具体收费、价格、平台支持等信息暂未提供。