Es kann herausfordernd sein, Freunde im Erlebnis zu finden.Das Freundesfinder-Modul lässt Spieler leicht ihre Freunde innerhalb eines Ortes finden und teleportieren.
Modul-Verwendung
Installationen
Um das FriendsLocator -Modul in einem Erlebnis zu verwenden:
Stellen Sie sicher, dass die Sortierung der Modelle ausgewählt ist, dann klicken Sie auf die Schaltfläche Alle sehen für Kategorien .
Suchen und klicken Sie auf die Entwickler-Module -Kachel.
Suchen Sie das Modul Freundessuche und klicken Sie darauf oder ziehen Sie es in die 3D-Ansicht.
In dem Explorer Fenster verschiebe das gesamte FriendsLocator Modell in ServerScriptService .Wenn das Erlebnis ausgeführt wird, verteilt sich das Modul auf verschiedene Dienste und beginnt zu laufen.
Test im Studio
Um das Modul in Studio zu testen, muss das FriendsLocator -Modul in einer Mehrklientensimulation ausgeführt werden, da keine Freunde in einem Solo-Test vorhanden sein werden.
In StarterPlayerScripts erstelle ein neues LocalScript und benenne es um in Konfigurieren von Freundesfinder .
Füge den folgenden Code in das neue ConfigureFriendsLocator Skript, das. PL: die Skriptsein.Die showAllPlayers Einstellung innerhalb der configure Funktion stellt sicher, dass Lokalisierungen für alle Benutzer während des Tests im Studio angezeigt werden, aber nicht an einem veröffentlichten Ort.
LocalScript - Konfigurieren von FriendsLocatorlocal RunService = game:GetService("RunService")local ReplicatedStorage = game:GetService("ReplicatedStorage")local FriendsLocator = require(ReplicatedStorage:WaitForChild("FriendsLocator"))FriendsLocator.configure({showAllPlayers = RunService:IsStudio(), -- Ermöglicht die Fehlersuche im Studio})Von der Test-Registerkarte der Toolbar wählen Sie die folgende Kombination für Clients und Server aus und klicken dann auf die Schaltfläche Start.Drei neue Instanzen von Studio öffnen sich; ein simulierter Server und zwei simulierte Clients.
Gehe in eine der Client- -Studio-Instanzen, bewege eine Entfernung von 100 Stollen von dem anderen Charakter entfernt und du solltest ein Lokalisierungs-Symbol über seinem Kopf erscheinen sehen.
Verbinden mit Ereignissen
Das Modul FriendsLocator zeigt Ereignisse an, so dass Sie benutzerdefinierte Verhaltensweisen einführen können, wenn Benutzer mit einem Symbolinteragieren.
Stellen Sie sicher, dass Sie das Konfigurieren von Freundeslocator Skript erstellt haben, das in Test im Studio beschrieben ist.
Füge die Zeilen 8 und 11-13 zum Skript, das. PL: die Skriptshinzu:
LocalScript - Konfigurieren von FriendsLocatorlocal RunService = game:GetService("RunService")local ReplicatedStorage = game:GetService("ReplicatedStorage")local FriendsLocator = require(ReplicatedStorage:WaitForChild("FriendsLocator"))FriendsLocator.configure({showAllPlayers = RunService:IsStudio(), -- Ermöglicht die Fehlersuche im StudioteleportToFriend = false, -- Verhindern Sie Teleport beim Klicken/Tippen auf das Symbol})FriendsLocator.clicked:Connect(function(player, playerCFrame)print("You clicked on locator icon for", player.DisplayName)end)Führen Sie einen Multi-Client-Test durch und klicken Sie auf das Symboleines anderen Charakters.Beachten Sie, dass sich Ihr Charakter nicht an diesen Ort teleportiert und das Ereignis ausgelöst wird, um eine benutzerdefinierte Handhabung von Icon-Klicks zu ermöglichen.
Benutzerdefinierte Lokalisierungs-UI
Wenn der Standard-Stil nicht zu deiner Erlebnispasst, kannst du die Standard-Avatar-Portal-Benutzeroberfläche durch deine eigene Benutzeroberfläche ersetzen.

Um die Standard-UI zu ersetzen:
Erstellen Sie eine neue ScreenGui Instanz innerhalb des StarterGui Containers.
Erstelle eine Instanz namens FriendLocator als Kind des neuen >, füge dann Elemente wie oder hinzu, um deine benutzerdefinierte UI zu gestalten.
Wenn du fertig bist, deaktiviere den Eltern ScreenGui, damit das Modul die benutzerdefinierte Lokalisierungs-UI nicht anzeigt, bis es benötigt wird.
(Optional) Wenn du das Avatarporträt des Freund:inund DisplayName anzeigen möchtest, erscheint es irgendwo in der benutzerdefinierten UI, kannst du die folgenden Instanzen innerhalb des FriendLocator -Rahmens platzieren.
- Ein ImageLabel des Namens Porträt .
- Ein TextLabel des Namens DisplayName .
Das Modul sucht nach diesen Elementen und zeigt das Avatarporträt und/oder den Display-Namen des Freund:inan.
API-Referenz
Funktionen
konfigurieren
konfigurieren(config: table )
Übernimmt Standard-Konfigurationsoptionen durch die folgenden Schlüssel-/Werte in der config Tabelle.
Schlave | Beschreibung | Standardmäßig |
---|---|---|
alwaysOnTop | Wenn true , zeigt der Lokalisator-Icon oben auf allem, verhindert, dass sie von 3D-Weltobjekten blockiert werden. | wahr |
showAllPlayers | Wenn true , zeigt Orte für alle Spieler, nicht nur Freunde; dies kann helfen, die Funktionalität des Moduls in Studio zu überprüfen. | falsch |
teleportToFriend | Teleportiert den Spielercharakter zum Standort des Freund:in, wenn sein Suchsymbol angeklickt oder getippt wird. | wahr |
thresholdDistance | Kameradistanzschwelle, bei der Lokalisationssymbole angezeigt werden; Freunde näher als diese Entfernung werden keine Symbole anzeigen. | 100 |
maxLocators | Maximale Anzahl von Lokalisierungsymbolen, die zu einem bestimmten Zeitpunkt angezeigt werden. | 10 |
LocalScript - Konfigurieren von FriendsLocator
local ReplicatedStorage = game:GetService("ReplicatedStorage")local FriendsLocator = require(ReplicatedStorage:WaitForChild("FriendsLocator"))FriendsLocator.configure({alwaysOnTop = true,showAllPlayers = false,teleportToFriend = true,thresholdDistance = 100,maxLocators = 10})
Ereignisse
angeklickt
Feuert, wenn ein Lokalisierungsicon vom lokalen Spieler:ingeklickt/aktiviert wird. Dieses Ereignis kann nur in einem LocalScript verbunden werden.
Parameter | |
---|---|
spieler:in: Player | Spieler, zu dem das Lokalisierungsymbol gehört. |
playerCFrame: CFrame | CFrame des spieler:in' Humanoid.RootPart zu dem der lokalisierungsicon gehört. |
Lokales Skript
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)
-- Anfordern von Streaming rund um den Zielstandort
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)
Sichtbarkeit geändert
Feuert, wenn ein Lokalisierungsicon auf dem Bildschirm des lokalen Spieler:inangezeigt/ausgeblendet wird. Dieses Ereignis kann nur in einem LocalScript verbunden werden.
Parameter | |
---|---|
spieler:in: Player | Player objekt, zu dem das lokalisierungsymbol gehört. |
playerCFrame: CFrame | CFrame des spieler:in' Humanoid.RootPart zu dem der lokalisierungsicon gehört. |
ist sichtbar: boolean | Ob das Lokalisierungsymbol derzeit auf dem Bildschirm des lokalen Spieler:insichtbar ist.Beachten Sie, dass dies immer noch sein wird, wenn ist und der Locator hinter einem Objekt in der 3D-Welt gerendert wird. |
Lokales Skript
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)