เครื่องมือในเกม

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่

เครื่องมือในเกม Tools เป็นเครื่องมือที่ผู้เล่นสามารถสวมใส่ในเซสชันต่างๆ เช่น อาวุธ, ไม้กายสิทธิ์, ไฟฉาย, กุญแจ และอื่นๆ คุณสามารถออกแบบเครื่องมือและรวมไว้ในคลังของผู้เล่นหรือวางไว้รอบโลกในฐานะที่เป็นของเก็บได้

สร้างเครื่องมือในเกม

วัตถุ Tool เป็นพื้นฐานของเครื่องมือใดๆ ใน Roblox ดังนั้นคุณจะต้องสร้างหนึ่งอัน มันง่ายกว่าที่จะดูตัวอย่างว่าเครื่องมือมีลักษณะอย่างไรโดยการออกแบบใน Workspace และต่อมาคุณสามารถทำให้มันเป็นรายการ คลัง หรือรายการ ที่ได้รับ/ซื้อ

  1. ในลำดับชั้น Explorer ให้เลื่อนเมาส์ไปที่ Workspace คลิกที่ปุ่ม และแทรก Tool

    วัตถุเครื่องมือที่สร้างในพื้นที่ทำงาน
  2. เมื่อเลือก Tool ใหม่แล้ว ให้เข้าถึงหน้าต่าง Properties และปรับแต่งว่าเครื่องมือจะปรากฏในคลังของผู้เล่นอย่างไร:

    • TextureId — ระบุ ID ของภาพสินทรัพย์สำหรับเครื่องมือในคลังของผู้เล่น
    • ToolTip — ชื่อเครื่องมือที่แสดงเมื่อเลื่อนเมาส์ไปเหนือในคลังของผู้เล่น
  3. ตัดสินใจว่าเครื่องมือจะเป็น เครื่องมือทางกายภาพในสภาพแวดล้อม 3D (ทั่วไปที่สุด) หรือเป็นเครื่องมือ ที่ไม่ใช่ทางกายภาพ ที่เพียงแค่ครอบครองในคลังของผู้เล่นและตอบสนองต่อการป้อนข้อมูลของพวกเขา

เครื่องมือทางกายภาพ

หลังจากสร้างอินสแตนซ์ Tool สำหรับเครื่องมือทางกายภาพแล้ว คุณจะต้อง เพิ่ม ชิ้นส่วน/เมช เพื่อประกอบรูปลักษณ์ในโลก 3D นอกจากนี้คุณยังต้องรวม ด้ามจับ ซึ่งตัวละครของผู้เล่น จับ

เพิ่มชิ้นส่วน/เมช

เครื่องมือในเกมสามารถประกอบด้วย Parts และ/หรือ MeshParts หนึ่งชิ้นหรือมากกว่า หากคุณสร้างเครื่องมือจากหลายชิ้น ให้จำไว้ว่าต้องเชื่อมต่อทั้งหมดเข้าด้วยกันโดยใช้ WeldConstraints หรือ ข้อจำกัดทางกล อื่นๆ เพื่อให้เครื่องมือยังคงอยู่ในรูปแบบขณะผู้เล่นถือมัน

ตัวเลือกข้อจำกัดที่ระบุในแถบเครื่องมือของ Studio

ตั้งค่าด้ามจับ

เพื่อให้ผู้เล่นสามารถถือเครื่องมือได้ ชิ้นส่วนหนึ่งของเครื่องมือจะต้องมีชื่อว่า Handle นี่คือที่ที่เครื่องมือจะเชื่อมต่อกับ RightHand ส่วนของร่างกาย (R15) หรือ Right Arm (R6)

หากเครื่องมือประกอบด้วยเพียง MeshPart ชิ้นเดียว ให้ตั้งชื่อชิ้นส่วนนั้นว่า Handle มิฉะนั้น คุณสามารถรวมชิ้นส่วนแยกต่างหากที่ชื่อว่า Handle เป็น ลูกหลานโดยตรง ของ Tool และจากนั้นเชื่อมต่อกับชิ้นส่วนอื่นด้วย WeldConstraint หรือ ข้อจำกัดทางกล

ตัวอย่างต่อไปนี้แสดงเครื่องมือที่มีสามอินสแตนซ์: เมช Handle, RopeConstraint, และเมชโคมไฟที่แขวนจากเชือก

ปรับตำแหน่ง/ทิศทางการจับ

คุณสมบัติ Grip ของเครื่องมือเป็น CFrame ซึ่งระบุว่าเครื่องมือถูกวางและจัดแนวอย่างไรเมื่อเปรียบเทียบกับตัวละครที่ถือมัน

เนื่องจากตำแหน่ง/ทิศทางการจับที่เหมาะสมจะแตกต่างกันไปสำหรับเครื่องมือแต่ละชิ้น คุณจะต้องทดลองกับค่าเหล่านี้จนกว่าการจับของเครื่องมือของคุณจะดูถูกต้อง ตัวอย่างต่อไปนี้แสดงการตั้งค่า Grip ที่ไม่ถูกต้องและถูกต้องสำหรับโคมไฟที่แขวน:

โคมไฟลากอยู่บนพื้นด้วย Grip.Position ของ (0, -2, 0) และ Grip.Orientation ของ (-90, 0, 0)
โคมไฟอยู่ข้างหน้าตัวละครด้วย Grip.Position ของ (0, -1.5, 0) และ Grip.Orientation ของ (25, 0, 0)

เครื่องมือที่ไม่ใช่ทางกายภาพ

เครื่องมือที่ไม่ใช่ทางกายภาพ Tool จะครอบครองใน คลัง ของผู้เล่นและตอบสนองต่อการป้อนข้อมูลของพวกเขา ตัวอย่างเช่น เกมแนวบทบาทอาจมีชุดของเวทมนตร์ที่ผู้เล่นสามารถ "ร่าย" ผ่านคลังของพวกเขา

เครื่องมือที่ไม่ใช่ทางกายภาพไม่ต้องการการประกอบ 3D และไม่ใช้ชิ้นส่วน Handle ดังนั้นคุณควร ปิด คุณสมบัติ RequiresHandle ของเครื่องมือ:

เพิ่มเครื่องมือในเกม

เมื่อคุณเสร็จสิ้นการ สร้าง เครื่องมือในเกมของคุณแล้ว คุณจะต้องวางมันในพื้นที่ที่ถูกต้องในลำดับชั้น Explorer การวางเครื่องมือในลำดับชั้นขึ้นอยู่กับการใช้งานที่ตั้งใจไว้

คลังของผู้เล่น

หากคุณต้องการให้ผู้เล่นทุกคนเริ่มต้นด้วยเครื่องมือในคลังของพวกเขา ให้ใส่มันไว้ในคอนเทนเนอร์ StarterPack เมื่อผู้เล่นคนใดคนหนึ่งเกิด ระบบจะทำการคัดลอกเครื่องมือไปยัง Backpack ของพวกเขา จากที่นั่น ผู้เล่นสามารถสวมใส่เครื่องมือได้โดยการคลิกที่ไอคอนในคลังหรือโดยการกดปุ่มลัดที่เกี่ยวข้องเช่น 1 หรือ 2

โปรดทราบว่าเครื่องมือจะถูกคัดลอกไปยังคลังของผู้เล่น (Backpack) ตามลำดับที่เพิ่มไปยัง StarterPack สำหรับการจัดเรียงที่ควบคุมได้มากขึ้น คุณสามารถเพิ่ม LocalScript ไปยัง StarterPack ซึ่งจะย้ายเครื่องมือไปยัง ReplicatedStorage ชั่วคราวแล้วเปลี่ยนพวกมันกลับไปยัง Backpack ตามลำดับที่ระบุในตาราง order

จัดเรียงคลังใหม่
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local order = {"WaterSpell", "FireSpell", "AirSpell", "EarthSpell"}
local backpack = script.Parent
for _, item in backpack:GetChildren() do
if item:IsA("Tool") then
item.Parent = ReplicatedStorage
end
end
-- เปลี่ยนพ่อแม่เครื่องมือไปยังกระเป๋าในลำดับที่ระบุ
for i = 1, #order do
local tool = ReplicatedStorage:FindFirstChild(order[i])
if tool then
tool.Parent = backpack
end
end

เครื่องมือที่เก็บได้

หากคุณต้องการอนุญาตให้ผู้เล่นเก็บเครื่องมือทางกายภาพขณะสำรวจโลก 3D ให้วางเครื่องมือใน Workspace เช่นเดียวกับวัตถุ 3D ปกติ เครื่องมือที่เก็บได้จะถูกสวมใส่โดยอัตโนมัติและเพิ่มไปยังคลังของผู้เล่น (คุณไม่จำเป็นต้องเพิ่มการตรวจจับการชนเพิ่มเติมเพื่อให้ตัวละครหยิบเครื่องมือ)

ตามที่กล่าวไว้ในส่วน เพิ่มชิ้นส่วน/เมช ชิ้นส่วนของเครื่องมือไม่ควรเป็น Anchored โดยทั่วไป เนื่องจากตัวละครของผู้เล่นจะติดอยู่กับที่เมื่อพวกเขาหยิบหรือสวมใส่เครื่องมือที่ยึดไว้ อย่างไรก็ตาม หากคุณต้องการยึดเครื่องมือที่เก็บได้ไว้ในสถานที่เฉพาะในโลก 3D เช่น ลอยอยู่เหนือพื้นเล็กน้อย คุณสามารถเพิ่ม Script ต่อไปนี้ไปยังเครื่องมือเพื่อยกเลิกการยึดชิ้นส่วนเมื่อเก็บรวบรวม

ยกเลิกการยึดเครื่องมือเมื่อสวมใส่/เก็บรวบรวม
local tool = script.Parent
tool.Equipped:Connect(function()
for _, part in tool:GetDescendants() do
if part:IsA("BasePart") and part.Anchored then
part.Anchored = false
end
end
end)

เครื่องมือที่ได้รับ/ซื้อ

หากคุณต้องการตั้งค่าเครื่องมือเป็นรางวัลเมื่อผู้เล่นทำภารกิจสำเร็จ หรือเสนอเครื่องมือสำหรับขายในร้านค้าในเกม ให้ใส่เครื่องมือเหล่านั้นไว้ใน ReplicatedStorage จากที่นั่น คุณสามารถ Clone() เครื่องมือไปยัง Backpack ของผู้เล่นในเวลาที่เหมาะสม

คัดลอกเครื่องมือไปยังคลังของผู้เล่น
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local player = Players.LocalPlayer
local backpack = player:WaitForChild("Backpack")
-- สร้างสำเนาของเครื่องมือ
local tool = ReplicatedStorage:FindFirstChild("WaterSpell")
if tool then
local clone = tool:Clone()
clone.Parent = backpack -- เพิ่มสำเนาไปยังคลังของผู้เล่น
end

ใช้งานเอฟเฟกต์เครื่องมือ

หลังจาก เพิ่มเครื่องมือในเกมของคุณ คุณสามารถใช้งานสคริปต์เพื่อให้ผู้เล่นใช้เครื่องมือของพวกเขาและทำการกระทำที่ต้องการ เหตุการณ์เฉพาะเครื่องมือดังต่อไปนี้ระบุสถานะของเครื่องมือและการป้อนข้อมูลของผู้เล่นกับมัน

  • Equipped() — ถูกเรียกเมื่อผู้เล่นเลือกเครื่องมือจากกระเป๋าของพวกเขา
  • Unequipped() — ถูกเรียกเมื่อผู้เล่นเปลี่ยนเครื่องมือหรือปล่อยเครื่องมือ
  • Activated() — ถูกเรียกเมื่อผู้เล่นเริ่มเปิดใช้งานเครื่องมือ (คลิก, แตะ, หรือกดปุ่มทริกเกอร์ด้านหลังขวาบนเกมแพด)
  • Deactivated() — ถูกเรียกเมื่อผู้เล่นหยุดการป้อนข้อมูลการเปิดใช้งาน (ปล่อยปุ่มหรือสัมผัส)
เทมเพลตเหตุการณ์เครื่องมือ
local tool = script.Parent
local function onEquip()
print(tool.Name, "เครื่องมือถูกสวมใส่")
end
local function onUnequip()
print(tool.Name, "เครื่องมือถูกปล่อย")
end
local function onActivate()
print(tool.Name, "เครื่องมือถูกเปิดใช้งาน")
end
local function onDeactivate()
print(tool.Name, "เครื่องมือถูกยกเลิกการเปิดใช้งาน")
end
tool.Equipped:Connect(onEquip)
tool.Unequipped:Connect(onUnequip)
tool.Activated:Connect(onActivate)
tool.Deactivated:Connect(onDeactivate)

เหตุการณ์เครื่องมือจะถูกเรียกใช้เฉพาะใน LocalScripts ด้านไคลเอนต์เท่านั้น เนื่องจากอุปกรณ์ของผู้เล่นเท่านั้นที่รู้ว่าเมื่อใดที่เกิด การป้อนข้อมูล ขึ้น ดังนั้นเครื่องมือส่วนใหญ่จึงต้องการทั้ง LocalScript และ Script ด้านเซิร์ฟเวอร์ซึ่งแต่ละตัวจัดการด้านต่างๆ ของพฤติกรรมของเครื่องมือและ RemoteEvent ส่งข้อมูลจากไคลเอนต์ไปยังเซิร์ฟเวอร์ (ดู เหตุการณ์ระยะไกลและการเรียกกลับ สำหรับข้อมูลเพิ่มเติม)

ต่อไปนี้คือตัวอย่างเครื่องมือและพฤติกรรมของพวกเขาที่จัดการโดย LocalScript หรือ Script:

เครื่องมือLocalScriptScript
ไม้กายสิทธิ์ของผู้สร้างตรวจจับว่าผู้เล่นเปิดใช้งานเครื่องมือที่ไหน (Activated()).สร้างชิ้นส่วนใหม่ที่ตำแหน่งในโลก 3D ที่ผู้เล่นสัมผัสหรือคลิก.
ผ้าคลุมล่องหนตรวจจับเมื่อผู้เล่นสวมใส่เครื่องมือ (Equipped()) หรือปล่อยเครื่องมือ (Unequipped()).ทำให้ผู้เล่นมองไม่เห็นต่อผู้เล่นคนอื่นในขณะที่ผ้าคลุมถูกสวมใส่และคืนผู้เล่นให้มองเห็นได้เต็มที่เมื่อปล่อยผ้าคลุม.
Mega‑Bowตรวจจับระยะเวลาที่ผู้เล่นเปิดใช้งานเครื่องมือ (เวลาระหว่าง Activated() และ Deactivated()).ยิงลูกศรเวทมนตร์ที่มีพลังมากหรือน้อย ขึ้นอยู่กับระยะเวลาการเปิดใช้งานที่ตรวจจับได้.
©2026 Roblox Corporation. Roblox, โลโก้ Roblox และ Powering Imagination เป็นส่วนหนึ่งของเครื่องหมายการค้าที่จดทะเบียน และไม่ได้จดทะเบียนของเราในสหรัฐฯ และประเทศอื่นๆ