ตัวติดตามเพื่อน

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

การหาผู้เล่นเพื่อนไปในประสบการณ์อาจจะเป็นเรื่องท้าทาย โมดูล FriendsLocator สำหรับนักพัฒนา ช่วยให้ผู้เล่นหาง่ายและทีละเพื่อนของเขาภายในสถานที่

การใช้งานโมดูล

การติดตั้ง

ในการใช้งานโมดูล FriendsLocator ในประสบการณ์:

  1. จากเมนู Window ของ Studio หรือแถบเครื่องมือ Home ให้เปิด Toolbox และเลือกแท็บ Creator Store

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

  3. ค้นหาและคลิกที่ไอคอน Packages

  4. ค้นหาโมดูล Friends Locator และคลิกที่มัน หรือลากและวางลงในมุมมอง 3D

  5. ในหน้าต่าง Explorer ให้ย้ายโมเดล FriendsLocator ทั้งหมดไปยัง ReplicatedStorage เมื่อทำการรันประสบการณ์ โมดูลจะเริ่มทำงาน

ทดสอบใน Studio

ในการทดสอบโมดูลใน Studio โมดูล FriendsLocator ต้องทำงานในสภาพแวดล้อมที่มีหลายไคลเอนต์ (multi-client simulation) เนื่องจากไม่มีเพื่อนในโหมดทดสอบเดี่ยว

  1. ใน StarterPlayerScripts สร้าง LocalScript ใหม่และเปลี่ยนชื่อเป็น ConfigureFriendsLocator

  2. วางโค้ดดังต่อไปนี้ลงในสคริปต์ ConfigureFriendsLocator ใหม่ ตัวตั้งค่า showAllPlayers ในฟังก์ชัน configure จะทำให้ตัวติดตามปรากฏสำหรับผู้ใช้ทั้งหมดในขณะที่ทดสอบใน Studio แต่ไม่ในสถานที่ที่เผยแพร่

    LocalScript - ConfigureFriendsLocator

    local RunService = game:GetService("RunService")
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local FriendsLocator = require(ReplicatedStorage.FriendsLocator)
    FriendsLocator.configure({
    showAllPlayers = RunService:IsStudio(), -- อนุญาตสำหรับการดีบักใน Studio
    })
  3. จาก mezzanine ของ Studio เริ่มการ จำลองไคลเอนต์หลายตัว กับ 2 ไคลเอนต์ จะมีการเปิด Studio ใหม่ 3 ตัว; หนึ่งเซิร์ฟเวอร์จำลองและ 2 ไคลเอนต์จำลอง

    เซิร์ฟเวอร์และตัวเลือกไคลเอนต์ในเมนูทดสอบดรอปดาวน์ของ Studio.
  4. เข้าสู่หนึ่งในตัวอย่าง ไคลเอนต์ ของ Studio เดินออกห่างจากตัวละครอีกตัวหนึ่ง 100 studs และคุณจะเห็น ไอคอนตัวติดตาม ปรากฏขึ้นเหนือหัวของเขา

เชื่อมต่อกับเหตุการณ์

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

  1. ตรวจสอบให้แน่ใจว่าคุณได้สร้างสคริปต์ ConfigureFriendsLocator ตามที่ระบุใน การทดสอบใน Studio

  2. เพิ่มบรรทัด 8 และ 11-13 ลงในสคริปต์:

    LocalScript - ConfigureFriendsLocator

    local RunService = game:GetService("RunService")
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local FriendsLocator = require(ReplicatedStorage.FriendsLocator)
    FriendsLocator.configure({
    showAllPlayers = RunService:IsStudio(), -- อนุญาตสำหรับการดีบักใน Studio
    teleportToFriend = false, -- ป้องกันการทีเมื่อคลิก/แตะที่ไอคอน
    })
    FriendsLocator.clicked:Connect(function(player, playerCFrame)
    print("คุณคลิกที่ไอคอนตัวติดตามของ", player.DisplayName)
    end)
  3. ดำเนินการ ทดสอบหลายไคลเอนต์ และคลิกที่ไอคอนตัวติดตามของตัวละครอื่น สังเกตว่าตัวละครของคุณจะไม่ถูกส่งไปยังตำแหน่งนั้น และเหตุการณ์ถูกเรียกเพื่ออนุญาตให้มีการจัดการที่กำหนดเองกับการคลิกที่ไอคอน

UI ตัวติดตามที่กำหนดเอง

หากสไตล์เริ่มต้นไม่เข้ากับประสบการณ์ของคุณ คุณสามารถเปลี่ยน UI ของภาพอวตารเริ่มต้นด้วย UI ของคุณเอง

ในการเปลี่ยน UI เริ่มต้น:

  1. สร้างอินสแตนซ์ใหม่ของ ScreenGui ภายใน StarterGui

  2. สร้างอินสแตนซ์ Frame ที่ชื่อ FriendLocator เป็นลูกของ ScreenGui ใหม่ จากนั้น เพิ่มองค์ประกอบเช่น ImageLabels, TextLabels เพื่อออกแบบ UI ที่กำหนดเองของคุณ

  3. เมื่อเสร็จแล้วให้ ปิดใช้งาน ScreenGui แม่เพื่อที่ว่าโมดูลจะไม่แสดง UI ตัวติดตามที่กำหนดเองจนกว่าจะต้องการ

  4. (ไม่บังคับ) หากคุณต้องการให้ภาพอวตารของเพื่อนและ DisplayName แสดงที่ใดที่หนึ่งใน UI ที่กำหนดเอง คุณสามารถวางอินสแตนซ์ดังต่อไปนี้ภายในกรอบ FriendLocator

    โมดูลจะมองหาสิ่งเหล่านี้และแสดงภาพอวตารของเพื่อนและ/หรือชื่อแสดงผลตามลำดับ

อ้างอิง API

ฟังก์ชัน

configure

configure(config: table)

แทนที่ตัวเลือกการกำหนดค่าดีฟอลต์ผ่านกุญแจ/ค่าต่อไปนี้ในตาราง config

กุญแจคำอธิบายค่าเริ่มต้น
alwaysOnTopหากเป็น true, จะแสดงไอคอนตัวติดตามเหนือทุกสิ่ง เพื่อป้องกันไม่ให้ถูกบล็อกโดยวัตถุในโลก 3D true
showAllPlayersหากเป็น true, จะแสดงตำแหน่งสำหรับผู้เล่นทั้งหมด ไม่ใช่แค่เพื่อนเท่านั้น; สิ่งนี้สามารถช่วยในการตรวจสอบฟังก์ชันการทำงานของโมดูลใน Studiofalse
teleportToFriendส่งตัวละครผู้เล่นไปยังตำแหน่งของเพื่อนเมื่อไอคอนตัวติดตามของเขาถูกคลิกหรือแตะ true
thresholdDistanceระยะทางของกล้องที่ตำแหน่งที่ไอคอนตัวติดตามปรากฏ; เพื่อนที่อยู่ใกล้กว่าระยะนี้จะไม่แสดงไอคอน 100
maxLocatorsจำนวนสูงสุดของไอคอนตัวติดตามที่แสดงในเวลาใดก็ตาม10
LocalScript - ConfigureFriendsLocator

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local FriendsLocator = require(ReplicatedStorage.FriendsLocator)
FriendsLocator.configure({
alwaysOnTop = true,
showAllPlayers = false,
teleportToFriend = true,
thresholdDistance = 100,
maxLocators = 10
})

เหตุการณ์

clicked

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

พารามิเตอร์
player: Playerผู้เล่นที่ไอคอนตัวติดตามเป็นของเขา
playerCFrame: CFrameCFrame ของ Humanoid.RootPart ของผู้เล่นที่ไอคอนตัวติดตามเป็นของเขา
LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")
local FriendsLocator = require(ReplicatedStorage.FriendsLocator)
local localPlayer = Players.LocalPlayer
FriendsLocator.clicked:Connect(function(player, playerCFrame)
-- ขอให้มีการสตรีมรอบตำแหน่งเป้าหมาย
if Workspace.StreamingEnabled then
local success, errorMessage = pcall(function()
localPlayer:RequestStreamAroundAsync(playerCFrame.Position)
end)
if not success then
print(errorMessage)
end
end
print("คุณคลิกที่ไอคอนตัวติดตามของ", player.DisplayName, "ที่ตำแหน่ง", playerCFrame.Position)
end)

visibilityChanged

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

พารามิเตอร์
player: Playerวัตถุ Player ที่ไอคอนตัวติดตามเป็นของเขา
playerCFrame: CFrameCFrame ของ Humanoid.RootPart ของผู้เล่นที่ไอคอนตัวติดตามเป็นของเขา
isVisible: booleanว่าไอคอนตัวติดตามปรากฏอยู่ในหน้าจอของผู้เล่นท้องถิ่นหรือไม่ หมายเหตุว่านี่จะยังคงเป็น true หาก alwaysOnTop เป็น false และตัวติดตามอยู่เบื้องหลังวัตถุในโลก 3D
LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local FriendsLocator = require(ReplicatedStorage.FriendsLocator)
FriendsLocator.visibilityChanged:Connect(function(player, playerCFrame, isVisible)
print("การมองเห็นของไอคอนตัวติดตามสำหรับ", player.DisplayName, ":", isVisible)
end)
©2026 Roblox Corporation. Roblox, โลโก้ Roblox และ Powering Imagination เป็นส่วนหนึ่งของเครื่องหมายการค้าที่จดทะเบียน และไม่ได้จดทะเบียนของเราในสหรัฐฯ และประเทศอื่นๆ