Bisa menantang untuk menemukan teman dalam pengalaman.Modul pengembang Pencari Teman memungkinkan pemain dengan mudah menemukan dan berteleportasi ke teman mereka di dalam tempat.
Penggunaan modul
Instalasi
Untuk menggunakan modul Pencari Teman di sebuah pengalaman:
Pastikan pengurutan Model dipilih, lalu klik tombol Lihat Semua untuk Kategori .
Temukan dan klik ubin Modul Pengembang .
Temukan modul Pencari Teman dan klik, atau seret dan lepaskan ke dalam tampilan 3D.
Di jendela Explorer, pindahkan seluruh model FriendsLocator ke ServerScriptService .Setelah menjalankan pengalaman, modul akan didistribusikan ke berbagai layanan dan mulai berjalan.
Tes di Studio
Untuk menguji modul di Studio, modul Pencari Teman harus dijalankan dalam simulasi multi-klien, karena tidak ada teman yang akan hadir dalam tes solo.
Di StarterPlayerScripts , buat baru LocalScript dan ganti namanya menjadi Konfigurasi Pencari Teman .
Tempelkan kode berikut ke skrip KonfigurasiFriendsLocator baru.Pengaturan showAllPlayers di dalam fungsi konfigurasi memastikan lokator ditampilkan untuk semua pengguna saat diuji di Studio, tetapi tidak di tempat yang dipublikasikan.
Skrip Lokal - Konfigurasi Pencari Temanlocal RunService = game:GetService("RunService")local ReplicatedStorage = game:GetService("ReplicatedStorage")local FriendsLocator = require(ReplicatedStorage:WaitForChild("FriendsLocator"))FriendsLocator.configure({showAllPlayers = RunService:IsStudio(), -- Memungkinkan untuk debug di Studio})Dari tab Tes di bilah alat, pilih kombinasi berikut untuk Klien dan Server , lalu klik tombol Mulai .Tiga instans baru dari Studio akan terbuka; satu server simulasi dan dua klien simulasi.
Masuk ke salah satu instansi klien Studio, bergerak jarak 100 stud dari karakter lain, dan Anda harus melihat ikon penanda muncul di atas kepalanya.
Hubungkan ke acara
Modul Pencari Teman mengekspos peristiwa sehingga Anda dapat memperkenalkan perilaku khusus saat pengguna berinteraksi dengan ikon lokator.
Pastikan bahwa Anda telah membuat skrip KonfigurasiPencariTeman yang dijelaskan dalam pengujian di Studio.
Tambahkan baris 8 dan 11-13 ke skrip:
Skrip Lokal - Konfigurasi Pencari Temanlocal RunService = game:GetService("RunService")local ReplicatedStorage = game:GetService("ReplicatedStorage")local FriendsLocator = require(ReplicatedStorage:WaitForChild("FriendsLocator"))FriendsLocator.configure({showAllPlayers = RunService:IsStudio(), -- Memungkinkan untuk debug di StudioteleportToFriend = false, -- Mencegah teleport pada klik/ketuk ikon})FriendsLocator.clicked:Connect(function(player, playerCFrame)print("You clicked on locator icon for", player.DisplayName)end)Lakukan tes multi-klien dan klik ikon lokator karakter lain.Perhatikan bahwa karakter Anda tidak berteleportasi ke lokasi itu, dan acara memicu untuk mengizinkan penanganan khusus untuk klik ikon.
UI lokator khusus ID
Jika gaya default tidak sesuai dengan pengalaman Anda, Anda dapat menggantikan UI avatar default dengan UI Anda sendiri.

Untuk menggantikan UI default:
Buat instansi baru ScreenGui di dalam kontainer StarterGui .
Buat instansi Frame yang bernama Pencari Teman sebagai anak dari baru ScreenGui , lalu tambahkan elemen seperti ImageLabels , TextLabels untuk merancang UI khusus Anda.
Saat selesai, nonaktifkan orangtua ScreenGui sehingga modul tidak menampilkan UI lokator khusus sampai diperlukan.
(Opsi) Jika Anda ingin potret avatar teman dan DisplayName untuk muncul di suatu tempat di UI khusus, Anda dapat menempatkan instans berikut di dalam frame Pencari Teman .
- Sebuah ImageLabel dari nama Portrait .
- A TextLabel dari nama DisplayName .
Modul akan mencari item ini dan menampilkan portret avatar teman dan/atau nama tampilan masing-masing.
Referensi API
Fungsi
mengonfigurasi
mengonfigurasi(config: table )
Menggantikan opsi konfigurasi default melalui kunci/nilai berikut di tabel config.
Kunci | Deskripsi | Standar |
---|---|---|
alwaysOnTop | Jika true , menunjukkan ikon lokator di atas segalanya, mencegah mereka diblokir oleh objek dunia 3D. | benar |
showAllPlayers | Jika true , menunjukkan lokasi untuk semua pemain, bukan hanya teman; ini dapat membantu memverifikasi fungsionalitas modul di Studio. | salah |
teleportToFriend | Teleport karakter pemain ke lokasi teman saat ikon lokator mereka diklik atau disentuh. | benar |
thresholdDistance | Batas jarak kamera di mana ikon lokator muncul; teman yang lebih dekat dari jarak ini tidak akan menampilkan ikon. | 100 |
maxLocators | Jumlah maksimum ikon lokator yang ditampilkan pada waktu tertentu. | 10 |
Skrip Lokal - Konfigurasi Pencari Teman
local ReplicatedStorage = game:GetService("ReplicatedStorage")local FriendsLocator = require(ReplicatedStorage:WaitForChild("FriendsLocator"))FriendsLocator.configure({alwaysOnTop = true,showAllPlayers = false,teleportToFriend = true,thresholdDistance = 100,maxLocators = 10})
Peristiwa
ditekan
Memicu ketika ikon lokator diklik/diaktifkan oleh pemain lokal. Acara ini hanya dapat terhubung di LocalScript .
Parameter | |
---|---|
pemain: Player | Pemain yang ikon lokator milik. |
playerCFrame: CFrame | CFrame dari Humanoid.RootPart pemain yang ikon lokator miliknya. |
Skrip Lokal
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")
local FriendsLocator = require(ReplicatedStorage:WaitForChild("FriendsLocator"))
local localPlayer = Players.LocalPlayer
FriendsLocator.clicked:Connect(function(player, playerCFrame)
-- Permintaan 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("You clicked on locator icon for", player.DisplayName, "at position", playerCFrame.Position)
end)
visibilitas berubah
Melepaskan api saat ikon lokator ditampilkan/sembunyi di layar pemutar lokal. Peristiwa ini hanya dapat terhubung dalam LocalScript .
Parameter | |
---|---|
pemain: Player | Player objek yang ikon lokator miliki. |
playerCFrame: CFrame | CFrame dari Humanoid.RootPart pemain yang ikon lokator miliknya. |
terlihat: boolean | Apakah ikon lokator saat ini terlihat di layar pemutar lokal.Perhatikan bahwa ini masih akan menjadi true jika alwaysOnTop adalah false dan lokator ditampilkan di belakang objek di dunia 3D. |
Skrip Lokal
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)