工具是管理玩家可以在手中持有并在游戏中使用的物品的简单方式。它们可以是从剑这样的武器到食物这样的物品。
在本教程中,您将学习如何创建一个激光炮形状的工具,当其装备或激活时将播放声音效果。

创建工具
Tool 对象是 Roblox 中任何工具的基础,因此您需要创建一个。通过在工作区中添加可见的对象(如 Parts 和 MeshParts)来更改工具的外观更为简单。
在工作区中插入一个 Tool 并将其命名为 Blaster。

在工具中插入一个 MeshPart。

将 MeshId 属性设置为 rbxassetid://92656610。
将 TextureId 属性设置为 rbxassetid://92658105。


工具需要一个名为 Handle 的部件供玩家持有。将 MeshPart 的名称更改为 Handle。

存储工具
工具可以作为 可收集工具 保存在 3D 世界中,或者作为 启动工具 给予所有玩家。
可收集工具
激光炮目前是 Workspace 的子项,因此它是可收集的。玩家可以通过触碰工具来拾取它,使其成为角色模型的子项;然后工具将被装备并放置在热键栏中。
在游戏期间,未装备的工具会存放在玩家的背包层次结构中,然后在装备时移动到他们的角色模型。任何成为角色子项的工具将自动装备。


启动工具
将工具存储在 StarterPack 中将在玩家加入或重生时将其放置到玩家的 Backpack 中。
将 Blaster 移动到 StarterPack 中的 Explorer。

播放体验以测试工具。点击屏幕底部的热键栏或按 1 键装备工具。
工具属性
位置 / 方向
工具的位置和方向可以使用 grip 属性进行更改。GripPos 改变握持位置,而 GripForward、GripRight 和 GripUp 影响旋转。
当前玩家握持激光炮的中心位置,而不是握持位置。
将工具的 GripPos 属性设置为 0, -0.4, 1.1。

启动一次游戏测试以测试工具。注意工具现在处于不同的握持位置。

之前 
之后
热键图标
默认情况下,工具的 名称 将显示在热键图标上。通常最好将图标更改为工具的图像。将工具的 TextureId 属性设置为 rbxassetid://92628145。


工具提示
工具提示 是当鼠标悬停在热键上的工具时出现的小文本描述。它们通常包含工具的名称和/或其功能的简要描述。将 ToolTip 属性更改为 Blaster。

使用脚本与工具
工具有三个关键事件可以连接:Equipped、Unequipped 和 Activated。
| 事件 | 描述 |
|---|---|
| Equipped | 在工具被玩家装备时触发,例如当工具在热键中被选择时。 |
| Unequipped | 在工具被玩家卸下时触发,例如当工具在热键中被取消选择时。 |
| Activated | 在工具被玩家激活时触发,例如当玩家左键点击时。 |
这些方法仅在 LocalScripts 中有效,因为只有玩家的设备知道何时发生输入,例如鼠标按钮被点击或屏幕被触摸。
添加声音
要查看这些事件的效果,您可以在它们触发时播放声音。首先,您需要创建声音对象以供使用。
在 Handle 中插入两个 Sound 对象。
将一个声音重命名为 Equip 并将其 SoundId 属性设置为 rbxassetid://282906960。
将另一个声音重命名为 Activate 并将其 SoundId 属性设置为 rbxassetid://130113322。

添加代码
以下示例代码在工具装备时播放 Equip 声音,在激活时播放 Fire 声音。
在工具中插入一个 LocalScript 并将其命名为 ToolController。

在脚本中插入以下代码行。
local tool = script.Parentlocal function toolEquipped()tool.Handle.Equip:Play()endlocal function toolActivated()tool.Handle.Activate:Play()endtool.Equipped:Connect(toolEquipped)tool.Activated:Connect(toolActivated)通过装备和点击以激活工具来测试激光炮的声音效果。
现在您知道如何创建和编写一个基本工具,尝试创建其他简单工具,例如手电筒或扬声器。