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

創建工具
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)通過裝備和單擊以啟用工具來測試激光槍的音效。
現在您知道如何創建和編寫基本工具,嘗試創建其他簡單的工具,例如手電筒或揚聲器。