Arkadaşları deneyim içinde bulmak zor olabilir. FriendsLocator geliştirici modülü, oyuncuların bir yerdeki arkadaşlarını kolayca bulmasını ve onlara teleport olmasını sağlar.
Modül kullanımı
Kurulum
FriendsLocator modülünü bir deneyimde kullanmak için:
Studio'nun Pencere menüsünden veya Ana Sayfa sekmesindeki araç çubuğundan, Alet 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 Kategoriler için Hepsini Gör butonuna tıklayın.

Paketler kutusunu bulun ve üzerine tıklayın.
Arkadaşlar Lokatörü 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. Deneyim çalıştığı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 başına bir oyun testinde arkadaşlar mevcut olmayacaktır.
StarterPlayerScripts içinde yeni bir LocalScript oluşturun ve adını ConfigureFriendsLocator olarak değiştirin.

Yeni ConfigureFriendsLocator scriptine 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ında bir yerde değil.
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ıklama için 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 ikonu görünmelidir.

Olaylara Bağlanma
FriendsLocator modülü, kullanıcıların bir lokatör ikonuyla etkileşime girdiğinde özel davranışlar tanıtmanızı sağlayan olaylar açar.
Studio'da test etme bölümünde belirttiğiniz ConfigureFriendsLocator scriptinin oluşturulduğundan 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ıklama için izin verirteleportToFriend = false, -- İkon tıklanması/değilmesi durumunda teleportu engeller})FriendsLocator.clicked:Connect(function(player, playerCFrame)print("Lokatör ikonuna tıkladınız:", player.DisplayName)end)Bir çoklu istemci testi gerçekleştirin ve başka bir karakterin lokatör ikonuna tıklayın. Karakterinizin o konuma teleport olmadığını, ayrıca ikon tıklamalarının özel işlenmesine izin vermek için olayın tetiklendiğini fark edin.
Özel lokatör UI'si
Varsayılan stil deneyiminize uymuyorsa, varsayılan avatar portre UI'sini kendi UI'nizle değiştirebilirsiniz.

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

Yeni ScreenGui altına FriendLocator adlı bir Frame örneği oluşturun, ardından özel UI'nizi tasarlamak için ImageLabels, TextLabels gibi öğeler ekleyin.

İşiniz bittiğinde, modül özel lokatör UI'sini gerekli oluncaya kadar göstermemek için ana ScreenGui'yi devre dışı bırakın.

(İsteğe Bağlı) Eğer arkadaşınızın avatar portresinin ve DisplayName'ın özel UI'da bir yerde görünmesini istiyorsanız, aşağıdaki örnekleri FriendLocator çerçevesinin içine yerleştirebilirsiniz.
- Adı Portrait olan bir ImageLabel.
- Adı DisplayName olan bir TextLabel.

Modül, bu öğeleri arayacak ve sırasıyla arkadaşınızın avatar portresini ve/veya görüntüleme adını gösterecektir.
API referansı
Fonksiyonlar
configure
configure(config: table)
config tablosundaki aşağıdaki anahtar/değerlerle varsayılan yapılandırma seçeneklerini geçersiz kılar.
| Anahtar | Açıklama | Varsayılan |
|---|---|---|
| alwaysOnTop | Eğer true ise, lokatör ikonlarını her şeyin üstünde gösterir ve 3D dünya nesneleri tarafından engellenmelerini önler. | true |
| showAllPlayers | Eğer true ise, sadece arkadaşlar değil tüm oyuncuların konumlarını gösterir; bu, modülün işlevselliğini Studio'da doğrulamaya yardımcı olabilir. | false |
| teleportToFriend | İkonlarına tıklanıp/değildiğinde oyuncu karakterini arkadaşının konumuna teleport eder. | true |
| thresholdDistance | Lokatör ikonlarının görünmeye başladığı kamera mesafe eşiği; bu mesafeden daha yakın olan arkadaşların ikonları gösterilmeyecektir. | 100 |
| maxLocators | Herhangi bir anda gösterilen maksimum lokatör ikonu sayısı. | 10 |
LocalScript - ConfigureFriendsLocatorlocal 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 ikonu yerel oyuncu tarafından tıklandığında/devreye alındığında tetiklenir. Bu olay yalnızca bir LocalScript içinde bağlanabilir.
| Parametreler | |
|---|---|
| player: Player | Lokatör ikonunun ait olduğu oyuncu. |
| playerCFrame: CFrame | Lokatör ikonunun ait olduğu oyuncunun Humanoid.RootPart'ının CFrame'i. |
LocalScript
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ış talebinde bulunun
if Workspace.StreamingEnabled then
local success, errorMessage = pcall(function()
localPlayer:RequestStreamAroundAsync(playerCFrame.Position)
end)
if not success then
print(errorMessage)
end
end
print("Lokatör ikonuna tıkladınız:", player.DisplayName, "konumunda", playerCFrame.Position)
end)
visibilityChanged
Bir lokatör ikonu 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 ikonunun ait olduğu Player nesnesi. |
| playerCFrame: CFrame | Lokatör ikonunun ait olduğu oyuncunun Humanoid.RootPart'ının CFrame'i. |
| isVisible: boolean | Lokatör ikonunun mevcutta yerel oyuncunun ekranında görünür olup olmadığı. alwaysOnTop değeri false ise ve lokatör bir 3D dünya nesnesinin arkasında render ediliyorsa bu değer yine de true olacaktır. |
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local FriendsLocator = require(ReplicatedStorage.FriendsLocator)
FriendsLocator.visibilityChanged:Connect(function(player, playerCFrame, isVisible)
print("Lokatör ikonunun görünürlüğü", player.DisplayName, "için:", isVisible)
end)