工具是一種簡單的方式來管理玩家可以握在手中並在遊戲中使用的物品。它們可以從劍等武器到食物項目。
在本教程中,您將學習如何創建一個激光砲形狀的工具,當裝備或啟用時會播放音效。

創建工具
Tool 對象是 Roblox 中任何工具的基礎,因此您需要創建一個。通過添加可見的部件(如 Parts 和 MeshParts)到工作區中的工具,可以更輕鬆地更改工具的外觀。
在工作區中插入一個 Tool 並將其命名為 Blaster。

在工具中插入一個 MeshPart。

將 MeshId 屬性設置為 rbxassetid://92656610。
將 TextureId 屬性設置為 rbxassetid://92658105。


工具需要一個名為 Handle 的部件供玩家握住。將 MeshPart 的名稱更改為 Handle。

儲存工具
工具可以作為 可收集工具 保留在 3D 世界中,或作為 起始工具 給予所有玩家。
可收集工具
目前,發射器是 Workspace 的子物件,因此它將是可收集的。玩家可以通過碰觸工具來撿起它,使其成為角色模型的子物件;然後,工具將被裝備並放置在他們的快捷欄中。
在遊戲中,未裝備的工具存儲在玩家的背包(Backpack)層級中,然後在裝備時移動到角色模型中。任何成為角色子物件的工具將自動裝備。


起始工具
將工具儲存在 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)透過裝備和點擊激活工具來測試發射器的音效。
現在您知道如何創建和編寫基本工具,試著創建其他簡單的工具,例如手電筒或揚聲器。