Localisateur d'amis

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

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 :

  1. De l'onglet Affichage, ouvrez la boîte à outils et sélectionnez l'onglet boutique des créateurs .

    Toolbox toggle button in Studio
  2. Assurez-vous que le tri des modèles est sélectionné, puis cliquez sur le bouton Voir tout pour les catégories .

  3. Localisez et cliquez sur la case modules de développement .

  4. Localisez le module localisateur d'amis et cliquez dessus, ou faites-le glisser dans la voir3D.

  5. 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.

  1. Dans StarterPlayerScripts , créez un nouveau LocalScript et renommez-le Configurer le localisateur d'amis .

  2. 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'amis

    local 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
    })
  3. 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.

  4. 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.

  1. Assurez-vous d'avoir créé le script configurer le localisateur d'amis détaillé dans test dans Studio.

  2. Ajoutez les lignes 8 et 11-13 au script :

    LocalScript - Configurer le localisateur d'amis

    local 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
    teleportToFriend = 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)
  3. 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 :

  1. Créez une nouvelle instance ScreenGui à l'intérieur du conteneur StarterGui .

  2. 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.

  3. 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.

  4. (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 .

    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éAvertissementPar défaut
alwaysOnTopSi 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
showAllPlayersSi true , montre les emplacements pour tous les joueurs, pas seulement les amis ; cela peut aider à vérifier la fonctionnalité du module dans Studio.faux
teleportToFriendTéléporte le personnage du joueur à l'emplacement de l'ami lorsque son icône de localisateur est cliquée ou tapée.vrai
thresholdDistanceSeuil 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
maxLocatorsNombre 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 : PlayerJoueur auquel l'icône de localisation appartient.
playerCFrame : CFrameCFrame 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 : PlayerPlayer objet auquel l'icône de localisation appartient.
playerCFrame : CFrameCFrame du joueur Humanoid.RootPart auquel l'icône de localisation appartient.
est visible : booleanSi 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)