Dapat menantang untuk menemukan teman-teman dalam pengalaman. The FriendsLocator module pengembang memungkinkan pemain dengan mudah menemukan dan teleport ke teman-teman mereka di dalam tempat.
Penggunaan Modul
Pemasangan
Untuk menggunakan modul FriendsLocator dalam pengalaman:
Dari tab Lihat, buka tab Kotak Alat dan pilih tab Toko Pencipta .
Pastikan Model penyortiran dipilih, lalu klik tombol Lihat Semua untuk Kategori .
Temukan dan klik Modul Dev ubin.
Temukan modul Pelacak Teman dan klik, atau seret-seret ke dalam tampilan 3D.
Di jendela Explorer, pindahkan seluruh model FriendsLocator ke ServerScriptService . Setelah mengeksekusi pengalaman, modul akan di distribusikan ke berbagai layanan dan mulai berjalan.
Menguji di Studio
Untuk menguji modul di Studio, modul FriendsLocator harus dijalankan dalam simulasi multi-klien, karena tidak ada teman yang akan hadir dalam playtest solo.
Dalam StarterPlayerScripts , buat LocalScript baru dan ganti nama ConfigureFriendsLocator .
Tulis kode berikut ke dalam naskah baru ConfigureFriendsLocator . Pengaturan showAllPlayers menunjukkan bahwa lokator ditampilkan untuk semua pengguna saat menguji di Studio, tetapi tidak di tempat yang diterbitkan.
Skrip Lokal - Konfigurasi Pengguna 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 Pengujian, pilih kombinasi berikut untuk Klien dan Server , lalu klik tombol Mulai . Tiga instans baru Studio akan terbuka; satu server simulasi dan dua klien simulasi.
Pergi ke salah satu dari instansi client Studio, pindahkan jarak 100 stud dari karakter lain, dan Anda harus melihat ikon lokasi muncul di atas kepalanya.
Mengikuti Acara
Modul Pelacak Teman mengekspos acara sehingga Anda dapat memperkenalkan perilaku khusus ketika pengguna berinteraksi dengan ikon lokasi.
Pastikan bahwa Anda telah menciptakan ConfigureFriendsLocator script yang ditulis dalam Mengujungkan di Studio.
Tambahkan baris 8 dan 11-13 ke script:
Skrip Lokal - Konfigurasi Pengguna 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 teleportasi pada tombol klik/tap})FriendsLocator.clicked:Connect(function(player, playerCFrame)print("You clicked on locator icon for", player.DisplayName)end)Lakukan tes multi-client dan klik ikon lokasi karakter lain. Perhatikan bahwa karakter Anda tidak berteleportasi ke lokasi tersebut, dan acara mengaktifkan untuk memungkinkan penanganan khusus untuk klik ikon.
UI Pemosisi Kustom
Jika gaya default tidak sesuai dengan pengalaman Anda, Anda dapat mengganti UI avatar default Anda dengan UI Anda sendiri.
Untuk mengganti UI default:
Buat instansi baru ScreenGui di dalam wadah StarterGui .
Setelah selesai, nonaktifkan modul sehingga modul tidak menunjukkan UI lokasi khusus sampai diperlukan.
(Opsional) Jika Anda ingin portret avatar teman dan DisplayName untuk muncul di suatu tempat di UI khusus, Anda dapat menempatkan instans berikut di dalam frame FriendLocator .
- Sebuah ImageLabel dari nama Portrait .
- Sebuah TextLabel dari nama DisplayName .
Modul ini mencari item ini dan menampilkan portret avatar teman dan/atau nama tampilan masing-masing.
Referensi API
Fungsi
mengonfigurasi
Menggeser opsi konfigurasi default melalui kunci/值 berikut di tabel config .
Kunci | Deskripsi | Standar |
---|---|---|
alwaysOnTop | Jika true , menunjukkan ikon lokasi di atas segalanya, mencegah mereka dari diblokir oleh objek dunia 3D. | benar |
showAllPlayers | Jika true , menunjukkan lokasi untuk semua pemain, bukan hanya teman; ini dapat membantu memverifikasi keselamatan modul di Studio. | benar |
teleportToFriend | Teleport karakter pemain ke lokasi teman mereka ketika ikon lokasi mereka diklik atau dipergeluk. | benar |
thresholdDistance | Jarak kamera di mana ikon lokasi muncul; teman yang lebih dekat dari jarak ini tidak akan menunjukkan ikon. | 100 |
maxLocators | Jumlah maksimum ikon lokasi yang ditunjukkan pada waktu tertentu. | 10 |
Skrip Lokal - Konfigurasi Pengguna Teman
local ReplicatedStorage = game:GetService("ReplicatedStorage")local FriendsLocator = require(ReplicatedStorage:WaitForChild("FriendsLocator"))FriendsLocator.configure({alwaysOnTop = true,showAllPlayers = false,teleportToFriend = true,thresholdDistance = 100,maxLocators = 10})
Acara
diklik
Diaktifkan saat tombol lokasi di klik/aktifkan oleh pemain lokal. Acara ini hanya dapat dihubungkan dalam LocalScript .
Parameter | |
---|---|
pemain: Player | Pemain yang ikon lokasi berada. |
playerCFrame: CFrame | CFrame dari pemain's Humanoid.RootPart yang ikon lokasi berada. |
Skrip Lokal
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)
-- 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)
kejelasan
Diaktifkan ketika ikon lokasi ditunjukkan/tersembunyi di layar pemain lokal. Acara ini hanya dapat dihubungkan dalam sebuah LocalScript .
Parameter | |
---|---|
pemain: Player | Player objek yang ikon lokasi berada. |
playerCFrame: CFrame | CFrame dari pemain's Humanoid.RootPart yang ikon lokasi berada. |
terlihat: boolean | Apakah ikon lokasi saat ini terlihat di layar pemain lokal. Catat bahwa ini masih akan menjadi true jika alwaysOnTop adalah false dan lokator rendah 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)