Il peut être difficile de localiser des amis dans le jeu. Le FriendsLocator module de développement 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 un jeu :
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 Magasin de créateurs.

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

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

Dans la fenêtre Explorateur, déplacez l'ensemble du modèle FriendsLocator dans ReplicatedStorage. Lors de l'exécution du jeu, 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 en ConfigureFriendsLocator.

Collez le code suivant dans le nouveau script ConfigureFriendsLocator. Le paramètre showAllPlayers dans la fonction configure garantit que les localisateurs sont affichés pour tous les utilisateurs lors des 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})Depuis le 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éport sur clic/tap d'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 emplacement, et que l'événement se déclenche 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 jeu, vous pouvez remplacer l'UI par défaut du portrait d'avatar 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 comme enfant de la nouvelle ScreenGui, puis ajoutez des éléments comme ImageLabels, TextLabels pour concevoir votre UI personnalisée.

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

- OPTIONNELSi 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 du nom Portrait.
- Un TextLabel du 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 la table 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 du monde 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 à laquelle 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 à tout moment. | 10 |
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local FriendsLocator = require(ReplicatedStorage.FriendsLocator)
FriendsLocator.configure({
alwaysOnTop = true,
showAllPlayers = false,
teleportToFriend = true,
thresholdDistance = 100,
maxLocators = 10
})Événements
clicked
Se déclenche lorsqu'une icône de 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 appartient l'icône de localisateur. |
| playerCFrame: CFrame | CFrame de la Humanoid.RootPart du joueur auquel appartient l'icône de localisateur. |
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
Se déclenche lorsqu'une icône de 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 appartient l'icône de localisateur. |
| playerCFrame: CFrame | CFrame de la Humanoid.RootPart du joueur auquel appartient l'icône de localisateur. |
| 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. |
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)