นอกเสียงพื้นหลัง เสียงในเกมสามารถเพิ่มประสบการณ์ของผู้เล่นได้ การฝึกนี้จะรวมถึงสองรูปแบบของเสียงในเกม: positional และ ฟีด백 เสียง
สำหรับตัวอย่างแรกคุณจะสร้างเสียงตำแหน่งสำหรับน้ำตก ในตัวอย่างที่สองสคริปจะถูกใช้เพื่อเล่นเพลงเมื่อผู้เล่นแตะสะสมของ
เสียงตำแหน่ง
เมื่อวัตถุ เสียง เป็นลูกพี่ลูกน้องของส่วนหรืออุปกรณ์ มันจะเป็นตำแหน่ง เสียงจะปล่อยจากสถานที่ของมันและเติบโตใหญ่ขึ้นเมื่อผู้เล่นใกล้ชิดมากขึ้นในกรณีของน้ำตกนี้
สร้างเสียง
ในส่วนที่ต้องการใด ๆ ให้สร้างวัตถุเสียงใหม่ที่มีชื่อว่า WaterfallSound
ในโปรพิเศษ, ค้นหา SoundId และเปลี่ยนมันเป็นบรรยากาศน้ำตกนี้: rbxassetid://6564308795
สำหรับเล่นต่อเมื่อเกมเริ่มต้นด้วยการเปิด/ปิด เล่น และ ของเกม เพื่อเป็น เปิด
ทดสอบเกมเพื่อยืนยันว่าคุณได้ยินบรรยากาศน้ำตก
ปรับระยะเสียง
สังเกตเมื่อทดสอบ, เสียงเล่นทันที, แม้ว่าผู้เล่นจะอยู่ไกลจากวัตถุ โดยใช้คุณสมบัติเลื่อนออก, คุณสามารถปรับระยะที่ผู้เล่นได้ยินเสียงเพื่อสร้างเอฟเฟกต์การจางออก
เปลี่ยน RollOffMaxDistance เป็น 30 หน่วย ค่านี้วัดใน studs
สำหรับการลดความเบลอ เปลี่ยน RollOffMode เป็น InverseTapered นี่ทำให้รู้สึกเหมือนกับว่ากำลังเข้าใกล้เสียงมากขึ้น
ดำเนินโครงการ สังเกตว่าเสียงเหมือนจะได้ยินได้เฉพาะอยู่ใกล้วัตถุเท่านั้น
ปรับแต่งลูกโม่ง
ขึ้นอยู่กับความต้องการของคุณ คุณอาจต้องปรับแต่ละสมบัติสมุดสำหรับเอฟเฟ็กต์พิเศษหรือความเป็นจริงมากขึ้น ดูสมบัติสมุดต่อไปนี้:
- RollOffMinDistance - ระยะทางอย่างน้อย (ใน studs) ที่เสียงลดลงในปริมาณ
- SoundGroup - ใช้เพื่อปรับและรักษาระดับเสียงระหว่างกลุ่มเสียงต่างๆ เช่นเพลงพื้นหลังและเอฟเฟกต์ในเกม
เสียงข้อเสนอแนะ
เสียงสามารถเล่นได้ตามคำสั่งโดยใช้สคริปต์ คุณสามารถเชื่อมโยงเสียงไปยังเหตุการณ์ เช่น ผู้เล่นสัมผัสส่วนหนึ่งหรือใช้เมนู
เก็บของสะสม
ส่วนที่เหลือของการกวดวิชานี้ใช้แม่พิมพ์ล่วงหน้า แม่พิมพ์นี้รวมถึงชิ้นส่วนและสคริปต์เพื่อให้ผู้เล่นสามารถรวบรวมอัญมณีได้
- ในเบราว์เซอร์, เปิดหน้า รุปแบบอัญมณีที่สามารถเก็บได้ และคลิกปุ่ม รับ
- ใน Studio, ไปที่แท็บ ดู และคลิกที่ กล่องเครื่องมือ
- ในหน้าต่างกล่องเครื่องมือ, คลิกปุ่ม ในช่องเก็บของ แล้วตรวจสอบว่าปุ่มลูกลงมาอยู่ใน รุ่นของฉัน หรือไม่.
- เลือกโมเดล อัญมณีที่สามารถเก็บได้ เพื่อเพิ่มมันในเกม
ใน SoundService สร้าง เสียงใหม่ ที่มีชื่อว่า FeedbackSound
ใน FeedbackSound ตั้ง SoundId เป็น rbxassetid://4110925712 - ไฟล์เสียงของการดาวน์โหลดชิมเพื่อนำจากหน้าแบบ
การติดตั้งสคริปต์
ใน StarterPlayer > StarterPlayerScripts สร้างสคริปต์ใหม่ที่มีชื่อว่า CollectableSounds
รหัสด้านล่างจะดำเนินการให้ partTouched ฟังก์ชันเมื่อผู้เล่นสัมผัสสะสมของแต่ละคน คัดลอกรหัสในสคริปของคุณ
local pickupObjects = workspace.Collectables.Objectslocal objectsArray = pickupObjects:GetChildren()local function partTouched(otherPart, objectPart)local whichCharacter = otherPart.Parentlocal humanoid = whichCharacter:FindFirstChildWhichIsA("Humanoid")if humanoid and objectPart.CanCollide == true thenendend-- ผูกส่วนทุกส่วนของวัตถุให้กับการแสดงผลสัมผัสเพื่อให้ทำงานได้ทั้งหมดfor objectIndex = 1, #objectsArray dolocal objectPart = objectsArray[objectIndex]objectPart.Touched:Connect(function(otherPart)partTouched(otherPart, objectPart)end)end
เล่นเสียง
สร้างแป้นสำหรับ SoundService แล้วอีกแป้นเพื่อเก็บเสียง ข้อเสนอแนะ
local pickupObjects = workspace.Collectables.Objectslocal objectsArray = pickupObjects:GetChildren()local SoundService = game:GetService("SoundService")local feedbackSound = SoundService:FindFirstChild("FeedbackSound")local function partTouched(otherPart, objectPart)เพื่อเล่นเปิร์กเกอร์ ค้นหาฟังก์ชัน partTouched ภายในข้อมูล if คุณต้องการเล่นเสียง feedbackSound:Play() เพื่อเล่นเสียง
local function partTouched(otherPart, objectPart)local whichCharacter = otherPart.Parentlocal humanoid = whichCharacter:FindFirstChildWhichIsA("Humanoid")-- เล่นเสียง เมื่อเสร็จสิ้น ทำลายวัตถุif humanoid and objectPart.CanCollide == true thenfeedbackSound:Play()endendทดสอบเกมเพื่อยืนยันว่าเมื่อผู้เล่นแตะต้องสะสมของ มันจะหายไปและเล่นเสียง