Il peut être difficile de localiser des amis dans l'expérience.Le module développeur de localisateur d'amis permet aux joueurs de trouver facilement et de se téléporter à leurs amis à l'intérieur d'un emplacement.
Utilisation du module
Étabissement
Pour utiliser le module localisateur d'amis dans une expérience :
Assurez-vous que le tri des modèles est sélectionné, puis cliquez sur le bouton Voir tout pour les catégories .
Localisez et cliquez sur la case modules de développement .
Localisez le module localisateur d'amis et cliquez dessus, ou faites-le glisser dans la voir3D.
Dans la fenêtre Explorateur, déplacez l'ensemble du modèle Explorateur d'amis dans ServerScriptService .Une fois l'expérience exécutée, le module se distribuera à différents services et commencera à fonctionner.
Testez dans Studio
Pour tester le module dans Studio, le module localisateur d'amis doit être exécuté dans une simulation multi-client, car aucun ami ne sera présent lors d'un test de jeusolo.
Dans StarterPlayerScripts , créez un nouveau LocalScript et renommez-le Configurer le localisateur d'amis .
Collez le code suivant dans le nouveau script ConfigurerFriendsLocator .Le paramètre showAllPlayers dans la fonction configurer garantit que des localisateurs sont affichés pour tous les utilisateurs lors du test dans Studio, mais pas dans un emplacementpublié.
LocalScript - Configurer le localisateur d'amislocal RunService = game:GetService("RunService")local ReplicatedStorage = game:GetService("ReplicatedStorage")local FriendsLocator = require(ReplicatedStorage:WaitForChild("FriendsLocator"))FriendsLocator.configure({showAllPlayers = RunService:IsStudio(), -- Permet la débogaison dans Studio})Dans l'onglet Test de la barre d'outils, sélectionnez la combinaison suivante pour clients et serveurs , puis cliquez sur le bouton Démarrer .Trois nouvelles instances de Studio s'ouvriront ; un serveur simulé et deux clients simulés.
Allez dans l'une des instances client du studio, déplacez-vous à une distance de 100 studs loin de l'autre personnage, et vous devriez voir apparaître une icône de localisateur au-dessus de sa tête.
Se connecter aux événements
Le module localisateur d'amis expose événements afin que vous puissiez introduire des comportements personnalisés lorsque les utilisateurs interagissent avec une icône de localisation.
Assurez-vous d'avoir créé le script configurer le localisateur d'amis détaillé dans test dans Studio.
Ajoutez les lignes 8 et 11-13 au script :
LocalScript - Configurer le localisateur d'amislocal RunService = game:GetService("RunService")local ReplicatedStorage = game:GetService("ReplicatedStorage")local FriendsLocator = require(ReplicatedStorage:WaitForChild("FriendsLocator"))FriendsLocator.configure({showAllPlayers = RunService:IsStudio(), -- Permet la débogaison dans StudioteleportToFriend = false, -- Empêcher la téléportation lors du clic/tap sur une icône})FriendsLocator.clicked:Connect(function(player, playerCFrame)print("You clicked on locator icon for", player.DisplayName)end)Effectuez un test multiclient 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 se déclenche pour permettre une manipulation personnalisée des clics d'icône.
Interface utilisateur de localisateur personnalisé
Si le style par défaut ne correspond pas à votre expérience, vous pouvez remplacer l'interface utilisateur d'avatar par défaut par votre propre interface utilisateur.

Pour remplacer l'interface utilisateur 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 du nouveau ScreenGui, puis ajoutez des éléments comme ImageLabels , TextLabels pour concevoir votre interface utilisateur personnalisée.
Une fois terminé, désactivez le parent ScreenGui afin que le module ne montre pas l'interface utilisateur de localisation personnalisée jusqu'à ce qu'elle soit nécessaire.
(Facultatif) Si vous voulez le portrait de l'avatar d'un ami et DisplayName qu'il apparaisse quelque part dans l'interface utilisateur 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 le portrait de l'avatar de l'ami et/ou le nom d'affichage respectivement.
Référence de l'API
Fonctions
configurer
configurer(config: table )
Remplacements des options de configuration par défaut via les clés/ valeurs suivantes dans la table config .
Clé | Avertissement | Par défaut |
---|---|---|
alwaysOnTop | Si true , montre les icônes de localisation au-dessus de tout, empêchant qu'elles soient bloquées par les objets du monde 3D. | vrai |
showAllPlayers | Si true , montre les emplacements pour tous les joueurs, pas seulement les amis ; cela peut aider à vérifier la fonctionnalité du module dans Studio. | faux |
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. | vrai |
thresholdDistance | Seuil de distance de la caméra à partir duquel apparaissent les icônes de localisation ; 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 |
LocalScript - Configurer le localisateur d'amis
local ReplicatedStorage = game:GetService("ReplicatedStorage")local FriendsLocator = require(ReplicatedStorage:WaitForChild("FriendsLocator"))FriendsLocator.configure({alwaysOnTop = true,showAllPlayers = false,teleportToFriend = true,thresholdDistance = 100,maxLocators = 10})
Événements
cliqué
S'enflamme lorsqu'une icône de localisateur est cliquée/activée par le joueur local. Cet événement ne peut être connecté qu'en LocalScript.
Paramètres | |
---|---|
joueur : Player | Joueur auquel l'icône de localisation appartient. |
playerCFrame : CFrame | CFrame du joueur Humanoid.RootPart auquel l'icône de localisation appartient. |
Lecteur localScript
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)
-- Demander un streaming autour de la localisation cible
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)
visibilité modifiée
Se déclenche lorsqu'une icône de localisateur est affichée/masquée sur l'écran du joueur local. Cet événement ne peut être connecté qu'en LocalScript.
Paramètres | |
---|---|
joueur : Player | Player objet auquel l'icône de localisation appartient. |
playerCFrame : CFrame | CFrame du joueur Humanoid.RootPart auquel l'icône de localisation appartient. |
est visible : boolean | Si l'icône de localisation 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. |
Lecteur localScript
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)