Puede ser desafiante localizar amigos en la experiencia.El módulo desarrollador de localizador de amigos permite a los jugadores encontrar y teletransportarse fácilmente a sus amigos dentro de un lugar.
Uso de módulo
Instalación
Para usar el módulo Locador de amigos en una experiencia:
Asegúrese de que la clasificación de modelos esté seleccionada, luego haga clic en el botón Ver todo para categorías .
Localiza y haz clic en el mosaico Módulos de desarrollo .
Localice el módulo Buscador de amigos y haga clic en él, o arrástrelo a la vista 3D.
En la ventana Explorador, mueva todo el modelo Localizador de amigos en Servicio de script del servidor .Al ejecutar la experiencia, el módulo se distribuirá a varios servicios y comenzará a funcionar.
Prueba en Studio
Para probar el módulo en Studio, el módulo Localizador de amigos debe ejecutarse en una simulación de múltiples clientes, ya que no habrá amigos presentes en una prueba en solitario.
En StarterPlayerScripts , crea un nuevo LocalScript y renombralo Configurar localizador de amigos .
Pega el siguiente código en el nuevo script Configurar localizador de amigos .La configuración showAllPlayers dentro de la función configurar garantiza que se muestren localizadores para todos los usuarios durante la prueba en Studio, pero no en un lugar publicado.
LocalScript - Configurar el localizador de amigoslocal RunService = game:GetService("RunService")local ReplicatedStorage = game:GetService("ReplicatedStorage")local FriendsLocator = require(ReplicatedStorage:WaitForChild("FriendsLocator"))FriendsLocator.configure({showAllPlayers = RunService:IsStudio(), -- Permite la depuración en Studio})Desde la pestaña Prueba de la barra de herramientas, seleccione la siguiente combinación para clientes y servidores , luego haga clic en el botón Iniciar .Se abrirán tres nuevas instancias de Studio; un servidor simulado y dos clientes simulados.
Ve a cualquiera de las instancias de cliente de Studio, mueve una distancia de 100 studs lejos del otro personaje, y deberías ver un icono localizador aparecer sobre su cabeza.
Conectarse a eventos
El módulo localizador de amigos expone eventos para que puedas introducir comportamientos personalizados cuando los usuarios interactúen con un íconode localizador.
Asegúrate de haber creado el script de Configurar localizador de amigos delineado en prueba en Studio.
Añade las líneas 8 y 11-13 al script:
LocalScript - Configurar el localizador de amigoslocal RunService = game:GetService("RunService")local ReplicatedStorage = game:GetService("ReplicatedStorage")local FriendsLocator = require(ReplicatedStorage:WaitForChild("FriendsLocator"))FriendsLocator.configure({showAllPlayers = RunService:IsStudio(), -- Permite la depuración en StudioteleportToFriend = false, -- Evitar el teletransporte al hacer clic/tocar en un icono})FriendsLocator.clicked:Connect(function(player, playerCFrame)print("You clicked on locator icon for", player.DisplayName)end)Realice una prueba de múltiples clientes y haga clic en el íconodel localizador de otro personaje.Observe que su personaje no se teletransporta a esa ubicación, y el evento se activa para permitir un manejo personalizado de los clics de iconos.
Interfaz de ubicador personalizado
Si el estilo predeterminado no se adapta a tu experiencia, puedes reemplazar la interfaz de usuario predeterminada del retrato de avatar con tu propia interfaz de usuario.

Para reemplazar la interfaz de usuario predeterminada:
Crea una nueva instancia ScreenGui dentro del contenedor StarterGui .
Crea una instancia Frame llamada Localizador de amigos como hijo del nuevo ScreenGui, luego agrega elementos como ImageLabels , TextLabels para diseñar tu interfaz de usuario personalizada.
Cuando termine, desactive al padre ScreenGui para que el módulo no muestre la interfaz de usuario de localizador personalizado hasta que sea necesario.
(Opcional) Si quieres el retrato del avatar del amistady DisplayName para que aparezca en algún lugar de la interfaz de usuario personalizada, puedes colocar las siguientes instancias dentro del marco Localizador de amigos .
- Un ImageLabel de nombre Retrato .
- Un TextLabel del nombre DisplayName .
El módulo buscará estos elementos y mostrará el retrato del avatar del amistady/o el nombre de visualización respectivamente.
Referencia de API
Funciones
configurar
configurar(config: table )
Anula las opciones de configuración predeterminadas a través de las siguientes claves/valores en la tabla config.
Clave | Descripción | Por defecto |
---|---|---|
alwaysOnTop | Si true , muestra íconos de localizador en la parte superior de todo, lo que les impide ser bloqueados por objetos del mundo 3D. | cierto |
showAllPlayers | Si true , muestra ubicaciones para todos los jugadores, no solo amigos; esto puede ayudar a verificar la funcionalidad del módulo en Studio. | falso |
teleportToFriend | Teletransporta el personaje del jugador a la ubicación del amistadcuando se hace clic o toca el ícono de su localizador. | cierto |
thresholdDistance | Límite de distancia de la cámara en el que aparecen los iconos de localizador; los amigos más cercanos a esta distancia no mostrarán iconos. | 100 |
maxLocators | Número máximo de iconos de localizador mostrados en cualquier momento dado. | 10 |
LocalScript - Configurar el localizador de amigos
local ReplicatedStorage = game:GetService("ReplicatedStorage")local FriendsLocator = require(ReplicatedStorage:WaitForChild("FriendsLocator"))FriendsLocator.configure({alwaysOnTop = true,showAllPlayers = false,teleportToFriend = true,thresholdDistance = 100,maxLocators = 10})
Eventos
hiciste clic
Se activa cuando un icono de localizador es clicado/activado por el jugador local. Este evento solo se puede conectar en un LocalScript .
Parámetros | |
---|---|
jugador: Player | Jugador al que pertenece el icono de localizador. |
playerCFrame: CFrame | CFrame de los Humanoid.RootPart del jugador a los que pertenece el icono de localizador. |
Guión local
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)
-- Solicitar transmisión alrededor de la ubicación objetivo
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)
visibilidad cambiada
Se enciende cuando un icono de localizador se muestra/oculta en la pantalla del jugador local. Este evento solo se puede conectar en un LocalScript .
Parámetros | |
---|---|
jugador: Player | Player objeto al que pertenece el icono de localizador. |
playerCFrame: CFrame | CFrame de los Humanoid.RootPart del jugador a los que pertenece el icono de localizador. |
esVisible: boolean | Si el icono del localizador es actualmente visible en la pantalla del jugador local.Tenga en cuenta que esto aún será true si alwaysOnTop es false y el localizador se renderiza detrás de un objeto en el mundo 3D. |
Guión local
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)