Oyun içinde arkadaşları bulmak zor olabilir. FriendsLocator geliştirici modülü, oyuncuların bir yer içinde arkadaşlarını kolayca bulup onlara ışınlanmalarını sağlar.
Modül kullanımı
Kurulum
FriendsLocator modülünü bir oyunda kullanmak için:
Studio'nun Pencere menüsünden veya Ana Sayfa sekmesi araç çubuğundan Araç Kutusu'nu açın ve Yaratıcı Mağaza sekmesini seçin.

Modeller sıralamasının seçili olduğundan emin olun, ardından Kategorileri Görüntüle butonuna tıklayın.

Paketler kutucuğunu bulun ve tıklayın.
Arkadaşlar Bulucu modülünü bulun ve üzerine tıklayın veya 3D görünümüne sürükleyip bırakın.

Explorer penceresinde, tüm FriendsLocator modelini ReplicatedStorage içine taşıyın. Oyun çalıştırıldığında modül çalışmaya başlayacaktır.
Studio'da Test Etme
Modülü Studio'da test etmek için, FriendsLocator modülünün çoklu istemci simülasyonunda çalıştırılması gerekir, çünkü tek oyunculu testte arkadaşlar mevcut olmayacaktır.
StarterPlayerScripts içinde yeni bir LocalScript oluşturun ve adını ConfigureFriendsLocator olarak değiştirin.

Yeni ConfigureFriendsLocator script'ine aşağıdaki kodu yapıştırın. configure fonksiyonu içindeki showAllPlayers ayarı, Studio'da test ederken tüm kullanıcılar için lokatörlerin gösterilmesini sağlar, ancak yayımlanmış bir yerde göstermez.
LocalScript - ConfigureFriendsLocatorlocal RunService = game:GetService("RunService")local ReplicatedStorage = game:GetService("ReplicatedStorage")local FriendsLocator = require(ReplicatedStorage.FriendsLocator)FriendsLocator.configure({showAllPlayers = RunService:IsStudio(), -- Studio'da hata ayıklamaya izin verir})Studio'nun mezzanininden, 2 istemci ile bir çoklu istemci simülasyonu başlatın. Üç yeni Studio örneği açılacaktır; bir simüle edilmiş sunucu ve iki simüle edilmiş istemci.

İstemci Studio örneklerinden birine girin, diğer karakterden 100 birim uzaklaşın ve başının üzerinde bir lokatör simgesi belirdiğini görmelisiniz.

Olaylara Bağlanma
FriendsLocator modülü, kullanıcıların bir lokatör simgesi ile etkileşime girdiğinde özel davranışlar eklemenizi sağlayan olaylar sunar.
Studio'da test etme bölümünde belirtilen ConfigureFriendsLocator script'ini oluşturduğunuzdan emin olun.
Script'e 8. ve 11-13. satırları ekleyin:
LocalScript - ConfigureFriendsLocatorlocal RunService = game:GetService("RunService")local ReplicatedStorage = game:GetService("ReplicatedStorage")local FriendsLocator = require(ReplicatedStorage.FriendsLocator)FriendsLocator.configure({showAllPlayers = RunService:IsStudio(), -- Studio'da hata ayıklamaya izin verirteleportToFriend = false, -- Simgeye tıklama/dokunma ile ışınlanmayı engelle})FriendsLocator.clicked:Connect(function(player, playerCFrame)print("Lokasyon simgesine tıkladınız:", player.DisplayName)end)Çoklu istemci testi gerçekleştirin ve başka bir karakterin lokatör simgesine tıklayın. Karakterinizin o konuma ışınlanmadığını ve simge tıklamalarının özel işlenmesine izin veren olayın tetiklendiğini fark edin.
Özel lokatör UI'si
Varsayılan stil oyununuz için uygun değilse, varsayılan avatar portre UI'sini kendi UI'nizle değiştirebilirsiniz.

Varsayılan UI'yi değiştirmek için:
StarterGui konteynerinin içine yeni bir ScreenGui örneği oluşturun.

Yeni ScreenGui'nin çocuğu olarak FriendLocator adında bir Frame örneği oluşturun, ardından özel UI'nizi tasarlamak için ImageLabels, TextLabels gibi öğeler ekleyin.

İşiniz bittiğinde, modülün özel lokatör UI'sini ihtiyaç duyulana kadar göstermemesi için üstteki ScreenGui'yi devre dışı bırakın.

- İSTEĞE BAĞLIArkadaşın avatar portresinin ve DisplayName'in özel UI'de bir yerde görünmesini istiyorsanız, FriendLocator çerçevesinin içine aşağıdaki örnekleri yerleştirebilirsiniz.
- Portrait adında bir ImageLabel.
- DisplayName adında bir TextLabel.

Modül, bu öğeleri arayacak ve arkadaşın avatar portresini ve/veya görüntü adını sırasıyla gösterecektir.
API referansı
Fonksiyonlar
configure
configure(config: table)
config tablosundaki aşağıdaki anahtar/değerler aracılığıyla varsayılan yapılandırma seçeneklerini geçersiz kılar.
| Anahtar | Açıklama | Varsayılan |
|---|---|---|
| alwaysOnTop | true ise, lokatör simgelerini her şeyin üstünde gösterir, 3D dünya nesneleri tarafından engellenmelerini önler. | true |
| showAllPlayers | true ise, sadece arkadaşlar için değil, tüm oyuncular için konumları gösterir; bu, modülün işlevselliğini Studio'da doğrulamaya yardımcı olabilir. | false |
| teleportToFriend | Bir arkadaşın lokatör simgesine tıklandığında oyuncu karakterini arkadaşın konumuna ışınlar. | true |
| thresholdDistance | Lokatör simgelerinin göründüğü kamera mesafe eşiği; bu mesafeden daha yakın arkadaşlar için simgeler gösterilmeyecektir. | 100 |
| maxLocators | Herhangi bir anda gösterilen maksimum lokatör simgesi sayısı. | 10 |
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local FriendsLocator = require(ReplicatedStorage.FriendsLocator)
FriendsLocator.configure({
alwaysOnTop = true,
showAllPlayers = false,
teleportToFriend = true,
thresholdDistance = 100,
maxLocators = 10
})Olaylar
clicked
Bir lokatör simgesine yerel oyuncu tarafından tıklanıldığında/aktif hale getirildiğinde tetiklenir. Bu olay yalnızca bir LocalScript içinde bağlanabilir.
| Parametreler | |
|---|---|
| player: Player | Lokatör simgesinin ait olduğu oyuncu. |
| playerCFrame: CFrame | Lokatör simgesinin ait olduğu oyuncunun Humanoid.RootPart'ının CFrame'i. |
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)
-- Hedef konum etrafında akış talep et
if Workspace.StreamingEnabled then
local success, errorMessage = pcall(function()
localPlayer:RequestStreamAroundAsync(playerCFrame.Position)
end)
if not success then
print(errorMessage)
end
end
print("Lokasyon simgesine tıkladınız:", player.DisplayName, "konumda", playerCFrame.Position)
end)visibilityChanged
Bir lokatör simgesinin yerel oyuncunun ekranında gösterildiğinde/gizlendiğinde tetiklenir. Bu olay yalnızca bir LocalScript içinde bağlanabilir.
| Parametreler | |
|---|---|
| player: Player | Lokatör simgesinin ait olduğu Player nesnesi. |
| playerCFrame: CFrame | Lokatör simgesinin ait olduğu oyuncunun Humanoid.RootPart'ının CFrame'i. |
| isVisible: boolean | Lokatör simgesinin yerel oyuncunun ekranında şu anda görünür olup olmadığı. alwaysOnTop false olsa bile, 3D dünyadaki bir nesnenin arkasında render ediliyorsa bu hala true olacaktır. |
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local FriendsLocator = require(ReplicatedStorage.FriendsLocator)
FriendsLocator.visibilityChanged:Connect(function(player, playerCFrame, isVisible)
print("Lokasyon simgesinin görünürlüğü:", player.DisplayName, ":", isVisible)
end)