Menemukan teman dalam pengalaman bisa jadi menantang. Modul FriendsLocator modul pengembang memungkinkan pemain dengan mudah menemukan dan teleportasi ke teman-teman mereka di dalam suatu lokasi.
Penggunaan Modul
Instalasi
Untuk menggunakan modul FriendsLocator dalam sebuah pengalaman:
Dari menu Window di Studio atau toolbar tab Home, buka Toolbox dan pilih tab Creator Store.

Pastikan penyortiran Models dipilih, kemudian klik tombol See All untuk Categories.

Temukan dan klik ubin Packages.
Temukan modul Friends Locator dan klik, atau seret dan lepas ke dalam tampilan 3D.

Di jendela Explorer, pindahkan seluruh model FriendsLocator ke ReplicatedStorage. Setelah menjalankan pengalaman, modul akan mulai berjalan.
Uji di Studio
Untuk menguji modul di Studio, modul FriendsLocator harus dijalankan dalam simulasi multi-klien, karena tidak ada teman yang akan hadir dalam pengujian permainan solo.
Di StarterPlayerScripts, buat LocalScript baru dan ganti namanya menjadi ConfigureFriendsLocator.

Tempelkan kode berikut ke dalam skrip ConfigureFriendsLocator yang baru. Pengaturan showAllPlayers dalam fungsi configure memastikan bahwa pelacak ditampilkan untuk semua pengguna saat menguji di Studio, tetapi tidak dalam lokasi yang diterbitkan.
LocalScript - ConfigureFriendsLocatorlocal RunService = game:GetService("RunService")local ReplicatedStorage = game:GetService("ReplicatedStorage")local FriendsLocator = require(ReplicatedStorage.FriendsLocator)FriendsLocator.configure({showAllPlayers = RunService:IsStudio(), -- Memungkinkan untuk debug di Studio})Dari mezzanine Studio, mulai simulasi multi-klien dengan 2 klien. Tiga instans baru Studio akan terbuka; satu server simulasi dan dua klien simulasi.

Masuk ke salah satu instance client Studio, bergerak sejauh 100 stud dari karakter lainnya, dan Anda seharusnya melihat ikon pelacak muncul di atas kepala karakter tersebut.

Koneksikan ke acara
Modul FriendsLocator mengekspos acara sehingga Anda dapat memperkenalkan perilaku kustom saat pengguna berinteraksi dengan ikon pelacak.
Pastikan Anda telah membuat skrip ConfigureFriendsLocator yang dijelaskan dalam pengujian di Studio.
Tambahkan baris 8 dan 11-13 ke dalam skrip:
LocalScript - ConfigureFriendsLocatorlocal RunService = game:GetService("RunService")local ReplicatedStorage = game:GetService("ReplicatedStorage")local FriendsLocator = require(ReplicatedStorage.FriendsLocator)FriendsLocator.configure({showAllPlayers = RunService:IsStudio(), -- Memungkinkan untuk debugging di StudioteleportToFriend = false, -- Mencegah teleportasi saat ikon diklik/diusap})FriendsLocator.clicked:Connect(function(player, playerCFrame)print("Anda mengklik ikon pelacak untuk", player.DisplayName)end)Lakukan uji multi-klien dan klik ikon pelacak karakter lain. Perhatikan bahwa karakter Anda tidak teleportasi ke lokasi tersebut, dan acara dipicu untuk memungkinkan penanganan kustom klik ikon.
UI pelacak kustom
Jika gaya default tidak cocok dengan pengalaman Anda, Anda dapat mengganti UI potret avatar default dengan UI Anda sendiri.

Untuk mengganti UI default:
Buat instance ScreenGui baru di dalam wadah StarterGui.

Buat instance Frame dengan nama FriendLocator sebagai anak dari ScreenGui baru, kemudian tambahkan elemen seperti ImageLabels, TextLabels untuk merancang UI kustom Anda.

Setelah selesai, nonaktifkan ScreenGui induk agar modul tidak menunjukkan UI pelacak kustom sampai diperlukan.

(Opsional) Jika Anda ingin potret avatar teman dan DisplayName muncul di suatu tempat di UI kustom, Anda dapat menempatkan instance berikut di dalam frame FriendLocator.
- Sebuah ImageLabel dengan nama Portrait.
- Sebuah TextLabel dengan nama DisplayName.

Modul akan mencari item-item ini dan menampilkan potret avatar teman dan/atau nama tampilan masing-masing.
Referensi API
Fungsi
configure
configure(config: table)
Mengganti opsi konfigurasi default melalui kunci/nilai berikut dalam tabel config.
| Kunci | Deskripsi | Default |
|---|---|---|
| alwaysOnTop | Jika true, menampilkan ikon pelacak di atas semuanya, mencegahnya terhalang oleh objek dunia 3D. | true |
| showAllPlayers | Jika true, menampilkan lokasi untuk semua pemain, tidak hanya teman; ini dapat membantu memverifikasi fungsionalitas modul di Studio. | false |
| teleportToFriend | Teleportasi karakter pemain ke lokasi teman saat ikon pelacak mereka diklik atau diusap. | true |
| thresholdDistance | Ambang jarak kamera di mana ikon pelacak muncul; teman yang lebih dekat dari jarak ini tidak akan menampilkan ikon. | 100 |
| maxLocators | Jumlah maksimum ikon pelacak yang ditampilkan pada satu waktu. | 10 |
LocalScript - ConfigureFriendsLocatorlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local FriendsLocator = require(ReplicatedStorage.FriendsLocator)FriendsLocator.configure({alwaysOnTop = true,showAllPlayers = false,teleportToFriend = true,thresholdDistance = 100,maxLocators = 10})
Acara
clicked
Dipicu ketika ikon pelacak diklik/diactifkan oleh pemain lokal. Acara ini hanya dapat dihubungkan dalam LocalScript.
| Parameter | |
|---|---|
| player: Player | Pemain yang memiliki ikon pelacak. |
| playerCFrame: CFrame | CFrame dari Humanoid.RootPart pemain yang memiliki ikon pelacak. |
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)
-- Meminta streaming di sekitar lokasi target
if Workspace.StreamingEnabled then
local success, errorMessage = pcall(function()
localPlayer:RequestStreamAroundAsync(playerCFrame.Position)
end)
if not success then
print(errorMessage)
end
end
print("Anda mengklik ikon pelacak untuk", player.DisplayName, "di posisi", playerCFrame.Position)
end)
visibilityChanged
Dipicu ketika ikon pelacak ditampilkan/tersembunyi di layar pemain lokal. Acara ini hanya dapat dihubungkan dalam LocalScript.
| Parameter | |
|---|---|
| player: Player | Objek Player yang memiliki ikon pelacak. |
| playerCFrame: CFrame | CFrame dari Humanoid.RootPart pemain yang memiliki ikon pelacak. |
| isVisible: boolean | Apakah ikon pelacak saat ini terlihat di layar pemain lokal. Perhatikan bahwa ini tetap akan true jika alwaysOnTop adalah false dan pelacak dirender di belakang objek di dunia 3D. |
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local FriendsLocator = require(ReplicatedStorage.FriendsLocator)
FriendsLocator.visibilityChanged:Connect(function(player, playerCFrame, isVisible)
print("Visibilitas ikon pelacak untuk", player.DisplayName, ":", isVisible)
end)