Pencari Teman

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

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:

  1. Dari tab Pandangan, buka Kotak Alat dan pilih tab Toko Pencipta .

    Toolbox toggle button in Studio
  2. Pastikan pengurutan Model dipilih, lalu klik tombol Lihat Semua untuk Kategori .

  3. Temukan dan klik ubin Modul Pengembang .

  4. Temukan modul Pencari Teman dan klik, atau seret dan lepaskan ke dalam tampilan 3D.

  5. 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.

  1. Di StarterPlayerScripts , buat baru LocalScript dan ganti namanya menjadi Konfigurasi Pencari Teman .

  2. 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 Teman

    local 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
    })
  3. 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.

  4. 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.

  1. Pastikan bahwa Anda telah membuat skrip KonfigurasiPencariTeman yang dijelaskan dalam pengujian di Studio.

  2. Tambahkan baris 8 dan 11-13 ke skrip:

    Skrip Lokal - Konfigurasi Pencari Teman

    local 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
    teleportToFriend = false, -- Mencegah teleport pada klik/ketuk ikon
    })
    FriendsLocator.clicked:Connect(function(player, playerCFrame)
    print("You clicked on locator icon for", player.DisplayName)
    end)
  3. 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:

  1. Buat instansi baru ScreenGui di dalam kontainer StarterGui .

  2. Buat instansi Frame yang bernama Pencari Teman sebagai anak dari baru ScreenGui , lalu tambahkan elemen seperti ImageLabels , TextLabels untuk merancang UI khusus Anda.

  3. Saat selesai, nonaktifkan orangtua ScreenGui sehingga modul tidak menampilkan UI lokator khusus sampai diperlukan.

  4. (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 .

    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.

KunciDeskripsiStandar
alwaysOnTopJika true , menunjukkan ikon lokator di atas segalanya, mencegah mereka diblokir oleh objek dunia 3D.benar
showAllPlayersJika true , menunjukkan lokasi untuk semua pemain, bukan hanya teman; ini dapat membantu memverifikasi fungsionalitas modul di Studio.salah
teleportToFriendTeleport karakter pemain ke lokasi teman saat ikon lokator mereka diklik atau disentuh.benar
thresholdDistanceBatas jarak kamera di mana ikon lokator muncul; teman yang lebih dekat dari jarak ini tidak akan menampilkan ikon.100
maxLocatorsJumlah 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: PlayerPemain yang ikon lokator milik.
playerCFrame: CFrameCFrame 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: PlayerPlayer objek yang ikon lokator miliki.
playerCFrame: CFrameCFrame dari Humanoid.RootPart pemain yang ikon lokator miliknya.
terlihat: booleanApakah 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)