Localizar amigos en una experiencia puede ser difícil. El módulo de desarrolladores FriendsLocator les permite a los jugadores encontrar a sus amigos y teletransportarse a su ubicación con facilidad dentro de un lugar.
Uso del módulo
Instalación
Sigue estos pasos para usar el módulo FriendsLocator en una experiencia:
En la pestaña Ver, abre la Caja de herramientas y selecciona la pestaña Mercado.
Asegúrate de que la clasificación de Modelos esté seleccionada y, a continuación, haz clic en el botón Ver todo para las Categorías.
Busca y haz clic en el mosaico MÓDULOS DE DESARROLLADORES.
Busca el módulo Localizador de amigos y haz clic en él o arrástralo y suéltalo en la vista 3D.
En la ventana del Explorador, mueve todo el modelo de FriendsLocator a ServerScriptService. Al ejecutar la experiencia, el módulo se distribuirá a varios servicios y comenzará a ejecutarse.
Pruebas en Studio
Para probar el módulo FriendsLocator en Studio, se debe ejecutar en una simulación de múltiples clientes, dado que ningún amigo estará presente en las pruebas de jugabilidad en solitario.
En StarterPlayerScripts, crea un LocalScript nuevo y cámbiale el nombre a ConfigureFriendsLocator.
Pega el siguiente código en el script ConfigureFriendsLocator nuevo. El ajuste showAllPlayers dentro de la función de configuración garantiza que los localizadores se muestren a todos los usuarios mientras se realizan pruebas en Studio, pero no en lugares publicados.
LocalScript - ConfigureFriendsLocatorlocal RunService = game: GetService("RunService")local ReplicatedStorage = game: GetService("ReplicatedStorage")local FriendsLocator = require(ReplicatedStorage:WaitForChild("FriendsLocator"))FriendsLocator.configure({showAllPlayers = RunService: IsStudio(), -- Allows for debugging in Studio})En la pestaña Prueba, selecciona la siguiente combinación para Clientes y servidores y, luego, haz clic en el botón Iniciar. Se abrirán tres instancias nuevas de Studio: un servidor simulado y dos clientes simulados.
Ve a cualquiera de las instancias de cliente de Studio y aléjate a una distancia de 100 studs de otro personaje. Verás que aparece un ícono de localización sobre su cabeza.
Conexión a eventos
El módulo FriendsLocator expone eventos para que puedas introducir comportamientos personalizados cuando los usuarios interactúan con un ícono de localización.
Asegúrate de haber creado el script ConfigureFriendsLocator descrito en Pruebas en Studio.
Añade las líneas 8 y 11 a 13 al script:
LocalScript - ConfigureFriendsLocatorlocal RunService = game: GetService("RunService")local ReplicatedStorage = game: GetService("ReplicatedStorage")local FriendsLocator = require(ReplicatedStorage:WaitForChild("FriendsLocator"))FriendsLocator.configure({showAllPlayers = RunService: IsStudio(), -- Allows for debugging in StudioteleportToFriend = false, -- Prevent teleport on icon click/tap})FriendsLocator.clicked:Connect(function(player, playerCFrame)print("You clicked on locator icon for", player.DisplayName)end)Realiza una prueba en varios clientes y haz clic en el ícono de localización de otro personaje. Ten en cuenta que tu personaje no se teletransporta a esa ubicación y que el evento se activa para permitir administrar los clics en los íconos de forma personalizada.
Interfaz de usuario de localización personalizada
Si el estilo predeterminado no se ajusta a tu experiencia, puedes reemplazar la interfaz de usuario predeterminada de retratos de avatares por tu propia interfaz de usuario.
Sigue estos pasos para reemplazar la interfaz de usuario predeterminada:
Crea una instancia ScreenGui nueva dentro del contenedor StarterGui.
Diseña tu interfaz de usuario personalizada al añadir ImageLabels, TextLabels, etc. al marco FriendLocator.
Cuando termines, desactiva la ScreenGui principal para que el módulo no muestre la interfaz de usuario de localización personalizada hasta que sea necesaria.
(Opcional) Si quieres que se muestre el retrato del avatar y el DisplayName de los amigos en algún lugar de la interfaz de usuario personalizada, puedes colocar las siguientes instancias dentro del marco FriendLocator.
- Una ImageLabel con el nombre Retrato.
- Una TextLabel con el nombre DisplayName.
El módulo buscará estos elementos y mostrará el retrato del avatar o el nombre de visualización de los amigos, respectivamente.
Referencia API
Funciones
configure
configure(config:table):nil
Reemplaza las opciones de configuración predeterminadas a través de las siguientes claves o valores en la tabla config.
Clave | Descripción | Default |
---|---|---|
alwaysOnTop | Si se establece en true, muestra los íconos de localización sobre todo, lo que evita que los objetos del mundo 3D los bloqueen. | true |
showAllPlayers | Si se establece en true, se muestran las ubicaciones de todos los jugadores, no solo de los amigos, lo que puede ayudar a verificar la funcionalidad del módulo en Studio. | false |
teleportToFriend | Teletransporta al personaje del jugador a la ubicación de un amigo cuando hace clic en su ícono de localización o lo toca. | true |
thresholdDistance | El umbral de distancia de la cámara en el que aparecen los íconos de localización; no se verán íconos de los amigos que estén más cerca de esta distancia. | 100 |
maxLocators | Indica la cantidad máxima de íconos de localización que se pueden mostrar en un momento dado. | 10 |
LocalScript - ConfigureFriendsLocator
local ReplicatedStorage = game: GetService("ReplicatedStorage")local FriendsLocator = require(ReplicatedStorage:WaitForChild("FriendsLocator"))FriendsLocator.configure({alwaysOnTop = true,showAllPlayers = false,teleportToFriend = true,thresholdDistance = 100,maxLocators = 10})
Eventos
clicked
clicked(player:Player, playerCFrame:CFrame): RBXScriptSignal
Se desencadena cuando el jugador local hace clic en un ícono de localización o lo activa. Este evento solo se puede conectar en un LocalScript.
Parámetros | |
---|---|
player: Player | El jugador al que pertenece el ícono de localización. |
playerCFrame: CFrame | CFrame de la Humanoid.RootPart del jugador al que pertenece el ícono de localización. |
LocalScript
local ReplicatedStorage = game: GetService("ReplicatedStorage")
local FriendsLocator = require(ReplicatedStorage:WaitForChild("FriendsLocator"))
FriendsLocator.clicked:Connect(function(player, playerCFrame)
print("You clicked on locator icon for", player.DisplayName, "at position", playerCFrame.Position)
end)
visibilityChanged
visibilityChanged(player:Player, playerCFrame:CFrame, isVisible:boolean): RBXScriptSignal
Se desencadena cuando se muestra u oculta un ícono de localización en la pantalla del jugador local. Este evento solo se puede conectar en un LocalScript.
Parámetros | |
---|---|
player: Player | Objeto Player al que pertenece el ícono de localización. |
playerCFrame: CFrame | CFrame de la Humanoid.RootPart del jugador al que pertenece el ícono de localización. |
isVisible: boolean | Indica si el ícono de localización está visible en la pantalla del jugador local. Ten en cuenta que este parámetro seguirá siendo true si alwaysOnTop es false y el localizador se renderiza detrás de un objeto en el mundo 3D. |
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)