การแชทตามความใกล้ชิด

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

ตัวอย่างนี้แสดงให้เห็นวิธีการทำการแชทเฉพาะสำหรับผู้ใช้ที่อยู่ใกล้กันในโลก 3D โดยจะขยายฟังก์ชันการเรียกกลับด้วยฟังก์ชันที่ใช้ TextSource เพื่อระบุสถานที่ของผู้ใช้ที่อาจเป็นผู้รับข้อความ หากฟังก์ชันนี้คืนค่า false หมายความว่าผู้ใช้อยู่ไกลเกินกว่าระยะที่กำหนดไว้จากผู้ส่งข้อความ ดังนั้นระบบจะไม่ส่งข้อความไปยังผู้ใช้นั้น

เพิ่มสิ่งต่อไปนี้ไปยัง Script ใน ServerScriptService:

Server

local TextChatService = game:GetService("TextChatService")
local Players = game:GetService("Players")
-- รับช่องแชทสำหรับการแชทตามความใกล้ชิด
-- คุณสามารถเปลี่ยนช่องทั่วไปนี้ด้วยช่องเฉพาะ
local generalChannel: TextChannel = TextChatService:WaitForChild("TextChannels").RBXGeneral
-- ฟังก์ชันเพื่อรับตำแหน่งของตัวละครของผู้ใช้
local function getPositionFromUserId(userId: number)
-- รับผู้เล่นที่เกี่ยวข้องกับ ID ผู้ใช้ที่กำหนด
local targetPlayer = Players:GetPlayerByUserId(userId)
-- หากผู้เล่นมีอยู่ ให้รับตำแหน่งของตัวละครของพวกเขา
if targetPlayer then
local targetCharacter = targetPlayer.Character
if targetCharacter then
return targetCharacter:GetPivot().Position
end
end
-- คืนค่าตำแหน่งเริ่มต้นหากไม่พบผู้เล่นหรือตัวละคร
return Vector3.zero
end
-- ตั้งค่าการเรียกกลับสำหรับช่องทั่วไปเพื่อควบคุมการส่งข้อความ
generalChannel.ShouldDeliverCallback = function(textChatMessage: TextChatMessage, targetTextSource: TextSource)
-- รับตำแหน่งของผู้ส่งข้อความและเป้าหมาย
local sourcePos = getPositionFromUserId(textChatMessage.TextSource.UserId)
local targetPos = getPositionFromUserId(targetTextSource.UserId)
-- ส่งข้อความหากระยะห่างระหว่างผู้ส่งและเป้าหมายต่ำกว่า 50 หน่วย
return (targetPos - sourcePos).Magnitude < 50
end
©2026 Roblox Corporation. Roblox, โลโก้ Roblox และ Powering Imagination เป็นส่วนหนึ่งของเครื่องหมายการค้าที่จดทะเบียน และไม่ได้จดทะเบียนของเราในสหรัฐฯ และประเทศอื่นๆ