Localizador de amigos

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

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:

  1. Desde la pestaña Ver, abra la Caja de herramientas y seleccione la pestaña Tienda de creadores .

    Toolbox toggle button in Studio
  2. Asegúrese de que la clasificación de modelos esté seleccionada, luego haga clic en el botón Ver todo para categorías .

  3. Localiza y haz clic en el mosaico Módulos de desarrollo .

  4. Localice el módulo Buscador de amigos y haga clic en él, o arrástrelo a la vista 3D.

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

  1. En StarterPlayerScripts , crea un nuevo LocalScript y renombralo Configurar localizador de amigos .

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

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

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

  1. Asegúrate de haber creado el script de Configurar localizador de amigos delineado en prueba en Studio.

  2. Añade las líneas 8 y 11-13 al script:

    LocalScript - Configurar el localizador de amigos

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

  1. Crea una nueva instancia ScreenGui dentro del contenedor StarterGui .

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

  3. Cuando termine, desactive al padre ScreenGui para que el módulo no muestre la interfaz de usuario de localizador personalizado hasta que sea necesario.

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

    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.

ClaveDescripciónPor defecto
alwaysOnTopSi true , muestra íconos de localizador en la parte superior de todo, lo que les impide ser bloqueados por objetos del mundo 3D.cierto
showAllPlayersSi true , muestra ubicaciones para todos los jugadores, no solo amigos; esto puede ayudar a verificar la funcionalidad del módulo en Studio.falso
teleportToFriendTeletransporta el personaje del jugador a la ubicación del amistadcuando se hace clic o toca el ícono de su localizador.cierto
thresholdDistanceLí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
maxLocatorsNú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: PlayerJugador al que pertenece el icono de localizador.
playerCFrame: CFrameCFrame 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: PlayerPlayer objeto al que pertenece el icono de localizador.
playerCFrame:  CFrameCFrame de los Humanoid.RootPart del jugador a los que pertenece el icono de localizador.
esVisible: booleanSi 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)