การหาสมาชิกในประสบการณ์อาจเป็นเรื่องที่ท้าทาย โมดูล SpawnWithFriends โมดูลสำหรับผู้พัฒนา จะย้ายผู้เล่นที่สร้างตัวละครใกล้กับเพื่อนของพวกเขาที่อยู่ในประสบการณ์ โมดูลนี้ยังสามารถตั้งค่าให้โทรจิตผู้เล่นตามคำสั่งแทนการทำงานโดยอัตโนมัติ
การใช้งานโมดูล
การติดตั้ง
เพื่อใช้โมดูล SpawnWithFriends ในประสบการณ์:
จากเมนู Window ใน Studio หรือแถบเครื่องมือ Home ให้เปิด Toolbox และเลือกแท็บ Creator Store.

ตรวจสอบให้แน่ใจว่าการจัดเรียง Models ได้ถูกเลือก จากนั้นคลิกปุ่ม See All สำหรับ Categories.

ค้นหาแล้วคลิกที่ช่อง Packages.
ค้นหาโมดูล Spawn With Friends และคลิกที่มัน หรือดึงและวางมันเข้าสู่การมอง 3 มิติ.

ในหน้าต่าง Explorer ให้ย้ายโมเดล SpawnWithFriends ทั้งหมดไปยัง ReplicatedStorage เมื่อคุณรันประสบการณ์ โมดูลจะเริ่มทำงาน
พื้นที่การสปอนด์ที่ถูกจำกัด
โมดูลนี้อาจส่งผลให้ผู้เล่นเกิดในพื้นที่ที่ถูกจำกัดเช่น ห้อง VIP, พื้นที่ที่เข้าถึงได้เฉพาะ, เป็นต้น เพื่อป้องกันไม่ให้ผู้เล่นโทรจิตสู่อาณาบริเวณเหล่านี้:
เติมพื้นที่ที่ถูกจำกัดด้วยบล็อก Anchored ที่มองไม่เห็น ตรวจสอบให้แน่ใจว่า CanCollide, CanTouch, และ CanQuery ถูก ปิดใช้งาน สำหรับบล็อกทั้งหมด

บล็อกจากการเติมห้องเรือนจำทั้งหมดเพื่อป้องกันผู้เล่นจากการสปอนด์ภายใน ใช้ส่วน Tags ของคุณสมบัติของแต่ละบล็อก ให้นำแท็ก RestrictedSpawnArea ไปใช้เพื่อให้ CollectionService สามารถตรวจจับได้
วางโค้ดต่อไปนี้ลงใน Script ภายใน ServerScriptService.
Scriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local CollectionService = game:GetService("CollectionService")local SpawnWithFriends = require(ReplicatedStorage.SpawnWithFriends)local function validator(playerToTeleport, destinationPlayer, teleportationPoint)-- ทำซ้ำผ่านทุกส่วนที่ติดแท็กfor _, area in CollectionService:GetTagged("RestrictedSpawnArea") dolocal relativePosition = area.CFrame:PointToObjectSpace(teleportationPoint.Position)local size = area.Sizelocal inXBounds = relativePosition.X < size.X / 2 and relativePosition.X > -size.X / 2local inZBounds = relativePosition.Z < size.Z / 2 and relativePosition.Z > -size.Z / 2if inXBounds and inZBounds thenreturn false -- จุดหมายการสปอนด์อยู่ภายในพื้นที่ที่ถูกจำกัด; ยกเลิกการโทรจิตendendreturn true -- จุดหมายการสปอนด์ไม่ทับซ้อนกับพื้นที่ที่ถูกจำกัด; ดำเนินการโทรจิตต่อendSpawnWithFriends.setTeleportationValidator(validator)
เอกสารอ้างอิง API
ฟังก์ชัน
configure
configure(config: table)
แทนที่ตัวเลือกการกำหนดค่าดีฟอลต์ผ่านคีย์/ค่าต่อไปนี้ในตาราง config ฟังก์ชันนี้สามารถเรียกใช้ได้จาก Script เท่านั้น
| คีย์ | คำอธิบาย | ค่าเริ่มต้น |
|---|---|---|
| teleportToFriendOnRespawn | หากตั้งค่าเป็น false การโทรจิตไปยังเพื่อนจะเกิดขึ้นเฉพาะโดยการใช้ teleportToRandomFriend เท่านั้น | true |
| teleportDistance | ระยะทางที่ผู้เล่นจะเกิดห่างกัน แสดงเป็น studs | 5 |
| maxCharacterVelocity | ตัวละครที่เคลื่อนไหวเร็วมากกว่าค่านี้จะไม่ถูกเลือกเป็นผู้สมัครในการโทรจิต เช่น ผู้ที่อยู่ในยานพาหนะที่เคลื่อนที่ | 48 |
| bypassFriendshipCheck | หากตั้งค่าเป็น true ผู้เล่น ทุกคน จะเป็นผู้สมัครในการโทรจิต ไม่ใช่เพียงแต่เพื่อนเท่านั้น | false |
| showLogs | ไม่ว่าจะต้องแสดงข้อความบันทึกในผลลัพธ์หรือไม่ | false |
Scriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SpawnWithFriends = require(ReplicatedStorage.SpawnWithFriends)SpawnWithFriends.configure({teleportToFriendOnRespawn = true,teleportDistance = 5,maxCharacterVelocity = 48,bypassFriendshipCheck = false,showLogs = false})
teleportToRandomFriend
teleportToRandomFriend(playerToTeleport: Player): boolean
เรียกใช้การโทรจิตของผู้เล่นไปยังหนึ่งในเพื่อนของพวกเขาในประสบการณ์ด้วยตนเอง ส่งกลับค่า boolean ที่บ่งบอกว่าการโทรจิตสำเร็จหรือไม่; ความล้มเหลวในการโทรจิตอาจเกิดจากการไม่มีเพื่อนในเซิร์ฟเวอร์ หรือไม่สามารถหาจุดโทรจิตที่ไม่ถูกกีดขวางได้ ฟังก์ชันนี้สามารถเรียกใช้ได้จาก Script เท่านั้น
setTeleportationValidator
setTeleportationValidator(validator: function)
อนุญาตให้คุณทำการตรวจสอบก่อนโทรจิตตามแบบกำหนดโดยการเชื่อมต่อฟังก์ชันตรวจสอบกับฟังก์ชันย้อนกลับ ฟังก์ชันย้อนกลับจะรับพารามิเตอร์สามตัว:
| พารามิเตอร์ | คำอธิบาย |
|---|---|
| playerToTeleport | อ้างอิงถึง Player ที่กำลังถูกโทรจิต |
| destinationPlayer | อ้างอิงถึง Player เป้าหมายที่ playerToTeleport กำลังถูกโทรจิตไปยัง |
| teleportationPoint | CFrame ที่ playerToTeleport กำลังโทรจิตไป |
ฟังก์ชันนี้และฟังก์ชันย้อนกลับสามารถใช้ได้เฉพาะใน Script และฟังก์ชันย้อนกลับจะส่งกลับค่า boolean ที่บ่งบอกว่าการโทรจิตควรดำเนินการหรือไม่ ตัวอย่างเช่น ลอจิกในฟังก์ชันตรวจสอบต่อไปนี้จะรับประกันว่าผู้เล่นที่เกิดและผู้เล่นเป้าหมายอยู่ในทีมเดียวกัน
Script
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SpawnWithFriends = require(ReplicatedStorage.SpawnWithFriends)
-- โทรจิตผู้เล่นเฉพาะเมื่อพวกเขาอยู่ในทีมเดียวกัน
local function validator(playerToTeleport, destinationPlayer, teleportationPoint)
return playerToTeleport.Team == destinationPlayer.Team
end
SpawnWithFriends.setTeleportationValidator(validator)