Mencari teman dalam permainan bisa menjadi tantangan. Modul FriendsLocator pengembang memungkinkan pemain dengan mudah menemukan dan teleportasi ke teman mereka di dalam sebuah tempat.
Penggunaan modul
Instalasi
Untuk menggunakan modul FriendsLocator dalam sebuah permainan:
Dari menu Window di Studio atau toolbar tab Home, buka Toolbox dan pilih tab Creator Store.

Pastikan pengurutan Models dipilih, lalu klik tombol See All untuk Categories.

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

Di jendela Explorer, pindahkan seluruh model FriendsLocator ke dalam ReplicatedStorage. Setelah menjalankan permainan, 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 bermain 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 di tempat yang dipublikasikan.
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 Studio})Dari mezzanine Studio, mulai simulasi multi-klien dengan 2 klien. Tiga instance baru Studio akan terbuka; satu server yang disimulasikan dan dua klien yang disimulasikan.

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

Hubungkan ke acara
Modul FriendsLocator mengekspos acara sehingga Anda dapat memperkenalkan perilaku kustom ketika pengguna berinteraksi dengan ikon pelacak.
Pastikan Anda telah membuat skrip ConfigureFriendsLocator yang dijelaskan dalam pengujian di Studio.
Tambahkan baris 8 dan 11-13 ke 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/ditekan})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 untuk permainan Anda, Anda dapat mengganti UI potret avatar default dengan UI Anda sendiri.

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

Buat instance Frame bernama FriendLocator sebagai anak dari ScreenGui yang baru, lalu tambahkan elemen seperti ImageLabels, TextLabels untuk merancang UI kustom Anda.

Setelah selesai, nonaktifkan ScreenGui induk sehingga modul tidak menampilkan UI pelacak kustom sampai diperlukan.

- OPTIONALJika Anda ingin potret avatar teman dan DisplayName muncul di suatu tempat dalam 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 segalanya, 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 ketika ikon pelacak mereka diklik atau ditekan. | 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 waktu tertentu. | 10 |
local 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/diaktifkan oleh pemain lokal. Acara ini hanya dapat dihubungkan dalam LocalScript.
| Parameter | |
|---|---|
| player: Player | Pemain yang menjadi milik ikon pelacak. |
| playerCFrame: CFrame | CFrame dari Humanoid.RootPart pemain yang menjadi milik ikon pelacak. |
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/disembunyikan di layar pemain lokal. Acara ini hanya dapat dihubungkan dalam LocalScript.
| Parameter | |
|---|---|
| player: Player | Objek Player yang menjadi milik ikon pelacak. |
| playerCFrame: CFrame | CFrame dari Humanoid.RootPart pemain yang menjadi milik ikon pelacak. |
| isVisible: boolean | Apakah ikon pelacak saat ini terlihat di layar pemain lokal. Perhatikan bahwa ini akan tetap true jika alwaysOnTop adalah false dan pelacak dirender di belakang objek di dunia 3D. |
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)