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

创建工具
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 中有效,因为只有玩家的设备知道何时发生输入,例如鼠标按钮被点击或屏幕被触摸。
添加声音
要查看这些事件的实际效果,您可以在它们触发时播放声音。首先,您需要创建 Sound 对象以供使用。
在 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)通过装备和点击以激活工具来测试激光炮的音效。
现在您知道如何创建和编写基本工具的脚本,尝试创建其他简单工具,例如手电筒或扬声器。