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:
De la pestaña Ver, abra la Caja de herramientas y seleccione la pestaña Tienda del Creador .
Asegúrese de que se seleccione el Modelos clasificación y luego haga clic en el botón Ver Todo para Categorías .
Ubique y haga clic en el mosaico de Modulos de Dev .
Localiza el módulo Localizador de Amigos y haz clic en él, o arrástralo y suéltalo en la vista 3D.
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.
En StarterPlayerScripts , crea un nuevo LocalScript y renombralo ConfigureFriendsLocator .
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 amigoslocal 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})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.
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.
Asegúrese de que ha creado el ConfigureFriendsLocator script detallado en Testing in 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 hacer debug en StudioteleportToFriend = 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)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:
Crea una nueva instancia de ScreenGui dentro del contenedor StarterGui
Cuando termines, desactiva el padre ScreenGui para que el módulo no muestre la interfaz de usuario del localizador personalizado hasta que sea necesario.
(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 .
- Un ImageLabel del nombre Retrato .
- Un TextLabel del nombre DisplayName .
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
Anula las opciones de configuración predeterminadas a través de las siguientes llaves/valores en la tabla config .
Clave | Descripción | Por defecto |
---|---|---|
alwaysOnTop | Si true , muestra iconos de localizador en la parte superior de todo, evitando que sean bloqueados por objetos del mundo 3D. | cierto |
showAllPlayers | Si true , muestra ubicaciones para todos los jugadores, no solo los amigos; esto puede ayudar a ver la funcionalidad del módulo en Studio. | falso |
teleportToFriend | Teletransporta al personaje del jugador a la ubicación del amistadcuando se hace clic o toca el icono de localizador. | cierto |
thresholdDistance | Distancia 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 |
maxLocators | Nú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: Player | Jugador al que pertenece el icono de localizador. |
playerCFrame: CFrame | CFrame 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: Player | Player objeto al que pertenece el icono de localizador. |
playerCFrame: CFrame | CFrame del jugador que pertenece al Humanoid.RootPart del locutor. |
isVisible: boolean | Si 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)