Il peut être difficile de localiser des amis dans l'expérience. Le module FriendsLocator développeur module permet aux joueurs de trouver facilement et de se téléporter vers leurs amis à l'intérieur d'un lieu.
Utilisation du module
Installation
Pour utiliser le module FriendsLocator dans une expérience :
Dans le menu Fenêtre de Studio ou la barre d'outils de l'onglet Accueil, ouvrez la Boîte à outils et sélectionnez l'onglet Boutique Créateur.

Assurez-vous que le tri Modèles est sélectionné, puis cliquez sur le bouton Tout voir pour les Catégories.

Localisez et cliquez sur la tuile Packages.
Localisez le module Localisateur d'amis et cliquez dessus, ou faites-le glisser et déposez-le dans la vue 3D.

Dans la fenêtre Explorateur, déplacez tout le modèle FriendsLocator dans ReplicatedStorage. Une fois l'expérience lancée, le module commencera à fonctionner.
Tester dans Studio
Pour tester le module dans Studio, le module FriendsLocator doit être exécuté dans une simulation multi-clients, car aucun ami ne sera présent dans un test de jeu en solo.
Dans StarterPlayerScripts, créez un nouveau LocalScript et renommez-le ConfigureFriendsLocator.

Collez le code suivant dans le nouveau script ConfigureFriendsLocator. Le paramètre showAllPlayers dans la fonction configure garantit que des localisateurs sont affichés pour tous les utilisateurs pendant les tests dans Studio, mais pas dans un lieu publié.
LocalScript - ConfigureFriendsLocatorlocal RunService = game:GetService("RunService")local ReplicatedStorage = game:GetService("ReplicatedStorage")local FriendsLocator = require(ReplicatedStorage.FriendsLocator)FriendsLocator.configure({showAllPlayers = RunService:IsStudio(), -- Permet le débogage dans Studio})Dans la mezzanine de Studio, démarrez une simulation multi-clients avec 2 clients. Trois nouvelles instances de Studio s'ouvriront : un serveur simulé et deux clients simulés.

Allez dans l'une des instances client de Studio, déplacez-vous à une distance de 100 studs de l'autre personnage, et vous devriez voir une icône de localisateur apparaître au-dessus de sa tête.

Se connecter aux événements
Le module FriendsLocator expose des événements afin que vous puissiez introduire des comportements personnalisés lorsque les utilisateurs interagissent avec une icône de localisateur.
Assurez-vous d'avoir créé le script ConfigureFriendsLocator décrit dans tester dans Studio.
Ajoutez les lignes 8 et 11-13 au script :
LocalScript - ConfigureFriendsLocatorlocal RunService = game:GetService("RunService")local ReplicatedStorage = game:GetService("ReplicatedStorage")local FriendsLocator = require(ReplicatedStorage.FriendsLocator)FriendsLocator.configure({showAllPlayers = RunService:IsStudio(), -- Permet le débogage dans StudioteleportToFriend = false, -- Empêche le téléportation sur clic/tap sur l'icône})FriendsLocator.clicked:Connect(function(player, playerCFrame)print("Vous avez cliqué sur l'icône de localisateur pour", player.DisplayName)end)Effectuez un test multi-clients et cliquez sur l'icône de localisateur d'un autre personnage. Remarquez que votre personnage ne se téléporte pas à cet endroit, et que l'événement est déclenché pour permettre un traitement personnalisé des clics sur l'icône.
UI de localisateur personnalisée
Si le style par défaut ne convient pas à votre expérience, vous pouvez remplacer l'UI de portrait d'avatar par défaut par votre propre UI.

Pour remplacer l'UI par défaut :
Créez une nouvelle instance ScreenGui à l'intérieur du conteneur StarterGui.

Créez une instance Frame nommée FriendLocator en tant qu'enfant de la nouvelle ScreenGui, puis ajoutez des éléments comme ImageLabels, TextLabels pour concevoir votre UI personnalisée.

Une fois terminé, désactivez la ScreenGui parent afin que le module ne montre pas l'UI de localisateur personnalisée jusqu'à ce qu'elle soit nécessaire.

(Optionnel) Si vous souhaitez que le portrait d'avatar de l'ami et le DisplayName apparaissent quelque part dans l'UI personnalisée, vous pouvez placer les instances suivantes à l'intérieur du cadre FriendLocator.
- Un ImageLabel au nom Portrait.
- Un TextLabel au nom DisplayName.

Le module recherchera ces éléments et affichera respectivement le portrait d'avatar de l'ami et/ou le nom d'affichage.
Référence API
Fonctions
configure
configure(config: table)
Remplace les options de configuration par défaut via les clés/valeurs suivantes dans le tableau config.
| Clé | Description | Par défaut |
|---|---|---|
| alwaysOnTop | Si true, affiche les icônes de localisateur au-dessus de tout, les empêchant d'être bloquées par des objets 3D. | true |
| showAllPlayers | Si true, affiche les emplacements de tous les joueurs, pas seulement des amis ; cela peut aider à vérifier la fonctionnalité du module dans Studio. | false |
| teleportToFriend | Téléporte le personnage du joueur à l'emplacement de l'ami lorsque son icône de localisateur est cliquée ou tapée. | true |
| thresholdDistance | Seuil de distance de la caméra auquel les icônes de localisateur apparaissent ; les amis plus proches que cette distance ne montreront pas d'icônes. | 100 |
| maxLocators | Nombre maximum d'icônes de localisateur affichées à un moment donné. | 10 |
LocalScript - ConfigureFriendsLocatorlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local FriendsLocator = require(ReplicatedStorage.FriendsLocator)FriendsLocator.configure({alwaysOnTop = true,showAllPlayers = false,teleportToFriend = true,thresholdDistance = 100,maxLocators = 10})
Événements
clicked
Déclenche lorsque l'icône d'un localisateur est cliquée/activée par le joueur local. Cet événement ne peut être connecté que dans un LocalScript.
| Paramètres | |
|---|---|
| player: Player | Joueur auquel l'icône de localisateur appartient. |
| playerCFrame: CFrame | CFrame de la Humanoid.RootPart du joueur auquel l'icône de localisateur appartient. |
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)
-- Demande de streaming autour de l'emplacement cible
if Workspace.StreamingEnabled then
local success, errorMessage = pcall(function()
localPlayer:RequestStreamAroundAsync(playerCFrame.Position)
end)
if not success then
print(errorMessage)
end
end
print("Vous avez cliqué sur l'icône de localisateur pour", player.DisplayName, "à la position", playerCFrame.Position)
end)
visibilityChanged
Déclenche lorsque l'icône d'un localisateur est affichée/cachée sur l'écran du joueur local. Cet événement ne peut être connecté que dans un LocalScript.
| Paramètres | |
|---|---|
| player: Player | Objet Player auquel l'icône de localisateur appartient. |
| playerCFrame: CFrame | CFrame de la Humanoid.RootPart du joueur auquel l'icône de localisateur appartient. |
| isVisible: boolean | Indique si l'icône de localisateur est actuellement visible sur l'écran du joueur local. Notez que cela sera toujours true si alwaysOnTop est false et que le localisateur se rend derrière un objet dans le monde 3D. |
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local FriendsLocator = require(ReplicatedStorage.FriendsLocator)
FriendsLocator.visibilityChanged:Connect(function(player, playerCFrame, isVisible)
print("Visibilité de l'icône de localisateur pour", player.DisplayName, ":", isVisible)
end)