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 encontrar amigos en la experiencia. El localizador de amigos módulo de desarrollador permite a los jugadores encontrar y teletransportarse fácilmente a sus amigos dentro de un lugar.

Uso de módulos

Instalación

Para usar el módulo FriendsLocator en una experiencia:

  1. De la pestaña Ver, abra la Caja de herramientas y seleccione la pestaña Tienda del Creador .

    Toolbox toggle button in Studio
  2. Asegúrese de que se seleccione el Modelos clasificación y luego haga clic en el botón Ver Todo para Categorías .

  3. Ubique y haga clic en el mosaico de Modulos de Dev .

  4. Localiza el módulo Localizador de Amigos y haz clic en él, o arrástralo y suéltalo en la vista 3D.

  5. En la ventana Explorer, mueva el modelo entero de FriendsLocator a ServerScriptService . Al ejecutar la experiencia, el módulo se distribuirá a varios servicios y comenzará a funcionar.

Testeo en Studio

Para probar el módulo en Studio, el módulo FriendsLocator debearse ejecutar en una simulación de múltiples clientes, ya que no habrá amigos presentes en un solo prueba de jugabilidad/ prueba de juego.

  1. En StarterPlayerScripts , crea un nuevo LocalScript y renombralo ConfigureFriendsLocator .

  2. Paste el siguiente código en el nuevo ConfigureFriendsLocator script. La configuración showAllPlayers dentro de la función Configurar asegura que los locadores se muestran para todos los usuarios mientras se realiza 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 hacer debug en Studio
    })
  3. De la pestaña Prueba, 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; una simulada servidor y dos simuladas clientes.

  4. Ve a una de las instancias de Studio cliente , mueve una distancia de 100 studs lejos del otro personaje, y deberías ver un ículo de localizador aparecer sobre su cabeza.

Conectando a los eventos

El módulo FriendsLocator expone eventos para que puedas introducir comportamientos personalizados cuando los usuarios interactúan con un íconode localizador.

  1. Asegúrese de que ha creado el ConfigureFriendsLocator script detallado en Testing in 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 hacer debug en Studio
    teleportToFriend = false, -- Evitar el teletransporte al hacer clic / tocar el icono
    })
    FriendsLocator.clicked:Connect(function(player, playerCFrame)
    print("You clicked on locator icon for", player.DisplayName)
    end)
  3. Realice una prueba mult클라이ент y haga clic en el íconode localizador de otro personaje. Nota que tu personaje no se teletransporta a esa ubicación, y los eventos se activan para permitir la personalización del manejo de los clics de icono.

Interfaz de usuario de localizador personalizado

Si el estilo predeterminado no se adapta a tu experiencia, puedes reemplazar la interfaz de usuario de avatar predeterminada con la tuya propia.

Para reemplazar la interfaz de usuario por defecto:

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

  2. Crea una instancia de Frame llamada FriendLocator como hijo de la nueva ScreenGui , luego agrega elementos como 1> Class.ImageLabel|ImageTags1> , 4> Class.TextLabel|TextTags4> para diseñar tu UI personalizada.

  3. Cuando termines, desactiva el padre ScreenGui para que el módulo no muestre la interfaz de usuario del localizador personalizado hasta que sea necesario.

  4. (Opcional) Si quieres el retrato del avatar del amistady DisplayName para aparecer en alguna parte de la interfaz de usuario personalizada, puedes colocar las siguientes instancias dentro del marco FriendLocator .

    El módulo buscará estos elementos y mostrará el retrato del avatar del amistady/o su nombre de pantalla respectivamente.

Referencia de API

Funciones

configurar

configurar(Config: table )

Anula las opciones de configuración predeterminadas a través de las siguientes llaves/valores en la tabla config .

ClaveDescripciónPor defecto
alwaysOnTopSi true , muestra iconos de localizador en la parte superior de todo, evitando que sean bloqueados por objetos del mundo 3D.cierto
showAllPlayersSi true , muestra ubicaciones para todos los jugadores, no solo los amigos; esto puede ayudar a ver la funcionalidad del módulo en Studio.falso
teleportToFriendTeletransporta al personaje del jugador a la ubicación del amistadcuando se hace clic o toca el icono de localizador.cierto
thresholdDistanceDistancia de la cámara en la que aparecen los íconos de localizador; los amigos más cercanos a esta distancia no mostrarán íconos.100
maxLocatorsNúmero máximo de iconos de localizador mostrados en cualquier momento.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

ha pulsado

Se activa cuando se hace clic / se activa un icono de localizador 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 del jugador que pertenece al Humanoid.RootPart del locutor.
Script local

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local FriendsLocator = require(ReplicatedStorage:WaitForChild("FriendsLocator"))
local localPlayer = Players.LocalPlayer
FriendsLocator.clicked:Connect(function(player, playerCFrame)
-- Solicitar streaming alrededor de la ubicación del 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)

visibilityCambiado

Se activa cuando se muestra/oculta un icono de localizador 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 del jugador que pertenece al Humanoid.RootPart del locutor.
isVisible: booleanSi el icono de localizador es visible en la pantalla del jugador local. Tenga en cuenta que esto todavía será true si alwaysOnTop es false y el renderizador de localizador detrás de un objeto en el mundo 3D.
Script 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)