Unreal Engine 物品栏:用 AI 搭建快捷选择栏
如何在 Unreal Engine 中制作物品栏:1、2、3 键对应三个格子,选中的格子带金色边框并放大到 115%,上方显示物品名称,由一个 AI 请求搭建。
Unreal Engine 中的物品栏是三个小点子:一排格子,每个格子有自己的外观;一个数字,即被选中的格子;以及每个格子对应的一个按键,用来修改这个数字。你看到的一切,边框、大小、变暗和名称,都只是对这一个数字的反应。最简单的做法,是用一个请求让 AI 一次搭好整个快捷栏。
在这篇演示中,Ultimate Engine CoPilot 在 1、2、3 键上搭建了一个三格的快捷选择栏。你会看到完整的提示词、AI 如何测试每一个按键,以及一段通俗易懂的物品栏原理说明。
完成后的物品栏是什么样
屏幕左下角有三个小格子:红宝石、蓝宝石和绿宝石。第一个被选中,带着金色边框,比其他两个稍大,上方的名称写着 “Fire”。你按下 2,边框移到蓝宝石上,名称变成 “Frost”。按下 3,是绿宝石,“Heal”。再按 1,回到 Fire。

选中绿色 Heal 格子的物品栏:金色边框,完整大小,其余的被调暗。
提示词
复制下面这段,改一改颜色,或者再加第四个格子,看看 AI 会搭出什么:
Make a quick-select item bar. Create WBP_ItemBar in /Game/Series/EP38_ItemBar, a row of three square slots at the bottom left of the screen, above the existing ability bar and clear of it, each 72 pixels wide with the key number 1, 2 or 3 in the corner and a coloured gem in the middle: red for Fire, blue for Frost and green for Heal. The selected slot has a gold border and is scaled up to 115 percent, the other two are dimmed to 55 percent. Above the bar, show the name of the selected item, Fire, Frost or Heal. Create BP_ItemBarController in the same folder, an actor that I place once, that adds the widget on BeginPlay and listens for the keys 1, 2 and 3 to select the matching slot. The change animates over 0.15 seconds. Slot 1 is selected at the start. Keep the slot size and the animation time as variables. Place the actor near the player start. Then play test it: check slot 1 is selected at the start, press 2 and check slot 2 is selected and the name reads Frost, press 3 and check Heal, press 1 and check Fire, and fix anything that does not work.
看看这两个数字:115% 和 55%。如果你只说“高亮选中的格子”,AI 就会自己挑一个效果。给出数字,第一次就能得到你想要的外观。还有一个小细节:“位于现有技能栏上方并避开它”。屏幕上已经有 UI 时,一定要说明新的 UI 放在哪里。
AI 如何搭建它
AI 先读取项目和 HUD,看看技能栏在哪里。接着资产陆续出现:物品栏 Widget、控制器 Blueprint,以及三个 Enhanced Input 动作 (IA_ItemSlot1、2 和 3) 外加一个输入映射,因为 Actor 没有可用的原始按键事件。
Widget 里有很多小部件:三个格子、三颗宝石、按键数字、名称文字和三个选中动画。这些输入动作被设置为不消耗按键,所以绑定在 1、2 或 3 上的其他功能仍然有效。这是个很周到的细节。

控制器图表:每个按键都带着自己的编号调用 Select Slot。
试玩测试
一次就通过了:
- 开始时,控制器报告格子 1,名称是 Fire,截图显示格子 1 带着金色边框且更大,另外两个被调暗。
- 按 2:格子 2,Frost,边框已经移动。
- 按 3:格子 3,Heal。
- 按 1:格子 1,又回到 Fire。
四项检查,全部通过,没有需要修复的地方。
报告

一共六个资产,以及关于哪些内容没有测量的说明。
报告列出了搭建的内容,一共六个资产:Widget、控制器、三个输入动作和映射。它对没有测量的内容毫不隐瞒:
- 0.15 秒的动画没有在试玩中计时。每项检查都是在按键后约 0.6 秒读取的,因此只能确认最终状态。
- 测试截图中主菜单盖住了物品栏,所以它看起来颜色偏暗。
- 修改 SlotSize 不会移动宝石或布局框。格子会改变大小,但宝石仍是 26 像素,物品栏的容器是固定的 320 × 130,所以大得多的格子会溢出。
- 关卡尚未保存。
物品栏的工作原理,通俗讲
Widget 保存一个数字,即被选中的索引。控制器收到 2 键时,就告诉 Widget:选择格子 2。Widget 把这个数字存下来。接着对每个格子问同一个问题:我是被选中的那个吗?如果是,就播放选中动画:金色边框,放大到 115%,亮度全开。如果不是,就反向播放:调暗到 55%。而名称文字由索引决定:三个格子,三个名称。
由于动画时间和格子大小都是变量,改两个数字,就能做出干脆利落的物品栏,也能做出缓慢的。
扩展思路
- 用鼠标滚轮切换格子。
- 真正起作用的物品:Fire 抛出火焰,Frost 减慢敌人,Heal 恢复生命值。
- 覆盖在每个格子上的冷却扫描,以及显示持有数量的计数。Unreal Engine 背包系统 展示了如何给物品计数。
物品栏提示词的四个技巧
- 用数字给出选中和调暗的外观。
- 说明物品栏相对于现有 UI 放在哪里。
- 说明开始时选中哪个格子。
- 要求 AI 以打乱的顺序测试每个按键。
常见问题
在 Unreal Engine 5 中,如何制作快捷栏?
在 Widget 中保存一个被选中的索引,为每个格子添加一个设置它的按键,并让每个格子通过动画来响应自己是否被选中。
为什么 AI 在这里使用 Enhanced Input 动作?
通过这些工具,Actor 没有可用的原始按键事件,所以它为每个按键添加了一个输入动作,外加一个映射。它们被设置为不消耗输入,因此这些按键上的其他绑定仍然有效。
可以修改格子大小吗?
SlotSize 是一个变量,但宝石和容器不会随它缩放。大得多的格子会溢出固定的容器,所以还需要同时调整布局。
在你的项目中试试
在 产品页面 了解 Ultimate Engine CoPilot 能搭建什么,或者到 Fab 上获取。 了解 AI Blueprint 生成器 的工作原理。
本系列的更多搭建: Unreal Engine 背包系统、Unreal Engine 远程武器 和 Unreal Engine 主菜单。