ตราสัญลักษณ์เพื่อน

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

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

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

การติดตั้ง

เพื่อใช้โมดูล FriendsLocator ในประสบการณ์:

  1. จากแท็บ ดู เปิด กล่องเครื่องมือ และเลือกแท็บ ร้านค้าผู้สร้าง

    Toolbox toggle button in Studio
  2. ให้แน่ใจว่า รุ่น การเรียงลำดับเลือกแล้วคลิกปุ่ม ดูทั้งหมด สําหรับ หมวดหมู่

  3. ค้นหาและคลิกที่ โมดูลการพัฒนา รายการ

  4. ค้นหาโมดูล เพื่อนค้นหา และคลิกหรือลากไปยัง 3D มุมมอง

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

การทดสอบใน Studio

เพื่อทดสอบโมดูลใน Studio โมดูล FriendsLocator จะต้องดำเนินการในการจำลองผู้ใช้หลายตัว เนื่องจากไม่มีเพื่อนในเกมส์เดี่ยว

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

  2. วางรหัสต่อไปนี้ในสคริปต์ใหม่ จัดเตรียมเพื่อนโลเจ็ตเตอร์ เมื่อใดก็ตามที่คุณกำหนด showAllPlayers ตั้งค่าภายในฟังก์ชัน จัดเตรียม จะให้รหัสเครื่องหมายที่ป

    LocalScript - กำหนดตำแหน่งเพื่อน

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

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

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

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

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

  2. เพิ่มสาย 8 และ 11-13 ในสคริปต์:

    LocalScript - กำหนดตำแหน่งเพื่อน

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

UI ตัวชี้ที่กําหนดเอง

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

เพื่อแทนที่ UI เริ่มต้น:

  1. สร้าง ScreenGui ตัวอย่างใหม่ภายใน StarterGui คอนเทนเนอร์

  2. สร้าง Frame ตัวอย่างใหม่ที่มีชื่อว่า เพื่อนค้นหาตำแหน่งเพื่อน เป็นลูกของ ScreenGui แล้วจากนั้นเพิ่มส่วนอื่นเช่น

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

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

    • Class.ImageLabel ของชื่อว่า Portrait .
    • A TextLabel ของชื่อ DisplayName

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

อ้างอิง เอกสารอ้างอิงเกี่ยวกับ API

ฟังก์ชัน

กำหนดค่า

กำหนดค่า(คอนฟิก: table )

เปลี่ยนตั้งค่าการกำหนดค่าเริ่มต้นผ่านคีย์/ค่าต่อไปนี้ในตาราง config

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

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

เหตุการณ์

คลิก

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

ตัวแปร
ผู้เล่น: Playerผู้เล่นที่ไอคอนตำแหน่งเหมือนเป็นของ
playerCFrame: CFrameCFrame ของผู้เล่น Humanoid.RootPart ที่ไอคอนตำแหน่งนั้นเป็นเจ้าของ
สคริปต์ท้องถิ่น

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local FriendsLocator = require(ReplicatedStorage:WaitForChild("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("You clicked on locator icon for", player.DisplayName, "at position", playerCFrame.Position)
end)

มองเห็น

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

ตัวแปร
ผู้เล่น: PlayerPlayer วัตถุที่ไอคอนตำแหน่งนั่งอยู่
playerCFrame: CFrameCFrame ของผู้เล่น Humanoid.RootPart ที่ไอคอนตำแหน่งนั้นเป็นเจ้าของ
มองเห็นได้: booleanว่าไอคอนตำแหน่งจะปรากฏอยู่บนหน้าจอผู้เล่นในขณะนี้หรือไม่ หมายเหตุว่านี่จะยังคงเป็น true ถ้า alwaysOnTop เป็น false และไอคอนเรนเดอร์จะปรากฏอยู่เบื้องห
สคริปต์ท้องถิ่น

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local FriendsLocator = require(ReplicatedStorage:WaitForChild("FriendsLocator"))
FriendsLocator.visibilityChanged:Connect(function(player, playerCFrame, isVisible)
print("Visibility of locator icon for", player.DisplayName, ":", isVisible)
end)