Arkadaşları deneyim içinde bulmak zor olabilir. ArkadaşlarLocatorgeliştirici modülü oyuncuları kolayca bir dünyaiçinde arkadaşlarına buluşturur ve ışınlanır.
Modül Kullanımı
Kurulum
Bir deneyimde FriendsLocator modülünü kullanmak:
从 Görüntü sayfasından aç Araç Kutusu ve seç Yaratıcı Dükkanı sayfasını.
Modelleri Sırala seçimi seçildiğinden emin olun, sonra Tümünü Gör düğmesine tıklayın, Kategoriler için.
Yerleştir ve Dev Modülleri mozülünü tıkla.
Arkadaşlarınızı Bulma Modülünü bul ve tıkla, veya 3D görüşüne kaydır-kaydır.
In the Explorer window, move the entire FriendsLocator model into ServerScriptService . On running the experience, the module will distribute itself to various services and begin running.
Stüdyo'da Test
Modülü Studio'da test etmek için, FriendsLocator modülü çok klien simülatöründe çalıştırılmalıdır, çünkü tek bir arkadaş yalnız bir oyun testinde bulunmayacaktır.
In StarterPlayerScripts , yeni bir LocalScript oluştur ve onu Arkadaşlarınızı Bulma Yapılandırıcı olarak yeniden adlandır.
Aşağıdaki kodu yeni Arkadaşlarınızı Bulma Etkinleştirici kriptine yapıştırın. showAllPlayers ayarı, Studio'da test edilirken tüm kullanıcılar için konumlayıcılar görüntülenmesini sağlar, ancak yayınlanmış bir dünyagörüntülenmez.
Yerel Kod - Dostlarınızı Bulma Düğmesini Yapılandırınlocal RunService = game:GetService("RunService")local ReplicatedStorage = game:GetService("ReplicatedStorage")local FriendsLocator = require(ReplicatedStorage:WaitForChild("FriendsLocator"))FriendsLocator.configure({showAllPlayers = RunService:IsStudio(), -- Stüdyo'da debug yapmanızı sağlar})Test sekmesinden Müşteriler ve Sunucular için şu kombinasyonu seçin, sonra Başlat düğmesine tıklayın. Üç Studio yeni istemesi açılacak; bir simüle sunucu ve iki simüle müşteri.
client Studio instanslarından birine gidin, diğer karakterden 100 stud uzaklıkta hareket edin ve kafasının üzerinde bir lokasyon işaretleyici görünmesi gerekir.
Etkinliklere Bağlanıyor
Arkadaş Bulucu modülü, kullanıcılar bir konum ikonuyla etkileşime geçtiğinde özelleştirilmiş davranışlar sunar, böylece kullanıcıların bir konum ikonuyla etkileşime geçmesiyle kullanıcıların davranışlarını özelleştirebilirsiniz.
Testing in Studio altındaki FriendsLocator kısmını test ettiğinizden emin olun.
8. ve 11. satırları senaryoya ekleyin:
Yerel Kod - Dostlarınızı Bulma Düğmesini Yapılandırınlocal RunService = game:GetService("RunService")local ReplicatedStorage = game:GetService("ReplicatedStorage")local FriendsLocator = require(ReplicatedStorage:WaitForChild("FriendsLocator"))FriendsLocator.configure({showAllPlayers = RunService:IsStudio(), -- Stüdyo'da debug yapmanızı sağlarteleportToFriend = false, -- Simge tıklama/dokunma sırasında ışınlanmayı önle})FriendsLocator.clicked:Connect(function(player, playerCFrame)print("You clicked on locator icon for", player.DisplayName)end)Bir çok-klien testi yapın ve başka bir karakterin konumlayıcısına tıklayın. Fark edin ki karakteriniz bu konuma ışınlanmaz ve etkinlik tetikleyicileri, simge tıklamaları için kişiselleştirilmiş bir işleme izin vermek için etkinleştirilir.
Özel Konumlayıcı Arayüzü
Varsayılan stil deneyiminize uymuyorsa, varsayılan avatar portres UI'sini kendi UI'nizle değiştirebilirsiniz.
Varsayılan UI'yi değiştirmek için:
Class.ScreenGui yeni bir örnek oluşturun StarterGui kümesi içinde.
Bittiğinde, devre dışı bırak ebeveyni ScreenGui , modülün gerektiğinde özelleştirici lokasyon arayüzünü göstermemesini sağlayın.
(İsteğe Bağlı) Eğer arkadaşınızın avatar portresini ve DisplayName 'i özelleştirilmiş UI'de görünmek istiyorsanız, FriendLocator kare içine aşağıdaki instansları yerleştirebilirsiniz.
- Bir ImageLabel adındaki bir Portrait .
- Class.TextLabel adının bir Görüntü Adı ile.
Modül bunları arar ve arkadaşın avatar portresini / veya ismini gösterir.
API İşaretçisi
Fonksiyonlar
yapılandır
Aşağıdaki anahtarlar/değerler aracılığıyla varsayılan yapılandırma seçeneklerinin üstesinden gelir.
Anahtar | Açıklama | Varsayılan |
---|---|---|
alwaysOnTop | Eğer true , her şeyin üstünde lokasyon işaretleri gösterir, böylece 3B dünya nesneleri tarafından bloklanmalarını önler. | doğru |
showAllPlayers | Eğer true , sadece arkadaşlar değil, tüm oyuncular için konumlar gösterir; bu, modülün Studio'da işlevselliğini doğrulamada yardımcı olabilir. | yanlış |
teleportToFriend | Yerleştirici ikonlarına tıklanır veya dokunulduğunda oyuncu karakterini arkadaşının yerine ışınlanır. | doğru |
thresholdDistance | Kamera mesafesi eşikleri, bu mesafedeki arkadaşlar görünmez. | 100 |
maxLocators | Herhangi bir zamanda gösterilen maksimum sayıda lokasyon ikonu. | 10 |
Yerel Kod - Dostlarınızı Bulma Düğmesini Yapılandırın
local ReplicatedStorage = game:GetService("ReplicatedStorage")local FriendsLocator = require(ReplicatedStorage:WaitForChild("FriendsLocator"))FriendsLocator.configure({alwaysOnTop = true,showAllPlayers = false,teleportToFriend = true,thresholdDistance = 100,maxLocators = 10})
Etkinlikler
tıkladı
Yerel oyuncu tarafından bir konum işaretleyici ikonu tıkladığında/etkinleştirdiğinde ateştirir. Bu olay sadece bir LocalScript ile bağlanabilir.
Parametreler | |
---|---|
oyuncu: Player | Lokasyon ikonunun sahip olduğu oyuncu. |
playerCFrame: CFrame | Class.Humanoid.RootPart ]'in sahibi olan oyuncunun Datatype.CFrame 'i. |
Yerel Kod
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)
-- Hedef konumunun etrafında yayın 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("You clicked on locator icon for", player.DisplayName, "at position", playerCFrame.Position)
end)
görünürlükDeğiştirildi
Yerel oyuncu ekranında bir konum göstergesi göründüğünde / gizlendiğinde ateşlenir. Bu olay sadece bir LocalScript ile bağlanabilir.
Parametreler | |
---|---|
oyuncu: Player | PlayerClass.Player] |
playerCFrame: CFrame | Class.Humanoid.RootPart ]'in sahibi olan oyuncunun Datatype.CFrame 'i. |
isVisible: boolean | Lokasyon ikonu yerel oyuncu ekranında şu anda görünür mü? Bu, hala true olacaktır, eğer alwaysOnTop veya nesnenin 3D dünyasındaki arkasındaki lokasyon görüntüleri görüntüleniyorsa. |
Yerel Kod
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)