Pode ser desafiador localizar amigos na experiência.O módulo de desenvolvedor FriendsLocator permite que os jogadores encontrem e se teletransportem facilmente aos seus amigos dentro de um local.
Uso do módulo
Instalação
Para usar o módulo FriendsLocator em uma experiência:
Certifique-se de que a classificação Modelos está selecionada, então clique no botão Ver Todos para Categorias .
Localize e clique no tijolo Dev Modules .
Localize o módulo Localizador de Amigos e clique nele, ou arraste-e-solte-o para a ver3D.
Na janela Explorer, mova todo o modelo FriendsLocator para Serviço de Script de Servidor .Ao executar a experiência, o módulo se distribuirá a vários serviços e começará a funcionar.
Teste no EstúDIO
Para testar o módulo no Studio, o módulo Locador de Amigos deve ser executado em uma simulação de múltiplos clientes, pois nenhum amigo estará presente em um teste de jogosolo.
Em StarterPlayerScripts , crie um novo LocalScript e renomeie-o Configurar Localizador de Amigos .
Cole o seguinte código no novo script ConfigurarLocalizador de Amigos .A configuração showAllPlayers dentro da função configurar garante que os localizadores sejam mostrados para todos os usuários durante o teste no Studio, mas não em um local publicado.
LocalScript - Configurar Localizador de Amigoslocal RunService = game:GetService("RunService")local ReplicatedStorage = game:GetService("ReplicatedStorage")local FriendsLocator = require(ReplicatedStorage:WaitForChild("FriendsLocator"))FriendsLocator.configure({showAllPlayers = RunService:IsStudio(), -- Permite depuração no Studio})Da aba Teste da barra de ferramentas, selecione a seguinte combinação para Clientes e Servidores , então clique no botão Iniciar .Três novas instâncias do Studio abrirão; um servidor simulado e dois clientes simulados.
Entre em uma das instâncias do cliente Studio, mova-se a uma distância de 100 metros de distância do outro personagem e você deve ver um ícone localizador aparecer sobre sua cabeça.
Conectar a eventos
O módulo Locador de Amigos exibe eventos para que você possa introduzir comportamentos personalizados quando os usuários interagem com um ícone de localizador.
Certifique-se de ter criado o script ConfigureFriendsLocator descrito em teste no Studio.
Adicione as linhas 8 e 11-13 ao script:
LocalScript - Configurar Localizador de Amigoslocal RunService = game:GetService("RunService")local ReplicatedStorage = game:GetService("ReplicatedStorage")local FriendsLocator = require(ReplicatedStorage:WaitForChild("FriendsLocator"))FriendsLocator.configure({showAllPlayers = RunService:IsStudio(), -- Permite depuração no StudioteleportToFriend = false, -- Prevenir teleporte ao clicar/tocar no ícone})FriendsLocator.clicked:Connect(function(player, playerCFrame)print("You clicked on locator icon for", player.DisplayName)end)Realize um teste de múltiplos clientes e clique no ícone de localizador de outro personagem.Observe que seu personagem não se teletransporta para essa localização e o evento é acionado para permitir o manuseio personalizado de cliques de ícones.
Interface de localizador personalizado
Se o estilo padrão não se encaixar na sua experiência, você pode substituir a interface de avatar padrão pelo seu próprio UI.

Para substituir a interface padrão:
Crie uma nova instância ScreenGui dentro do contêiner StarterGui .
Crie uma instância Frame chamada FriendLocator como filho do novo ScreenGui, então adicione elementos como ImageLabels , TextLabels para projetar sua interface personalizada.
Quando terminado, desative o pai ScreenGui para que o módulo não mostre a interface de localizador personalizada até que seja necessário.
(Opcional) Se você quiser o retrato do avatar do amizadee DisplayName para aparecer em algum lugar na interface personalizada, você pode colocar as seguintes instâncias dentro do quadro FriendLocator .
- Um ImageLabel do nome Retrato .
- Um TextLabel do nome DisplayName .
O módulo procurará esses itens e exibirá o retrato do avatar do amizadee/ou o nome de exibição respectivamente.
Referência da API
Funções
configurar
configurar(config: table )
Substitui as opções de configuração padrão através das seguintes chaves/valores na tabela config.
Chave | Descrição | Padrão |
---|---|---|
alwaysOnTop | Se true , mostra ícones de localizador no topo de tudo, impedindo que sejam bloqueados por objetos do mundo 3D. | verdadeiro |
showAllPlayers | Se true , mostra locais para todos os jogadores, não apenas amigos; isso pode ajudar a verificar a funcionalidade do módulo no Studio. | falso |
teleportToFriend | Teletransporta o personagem do jogador para a localização do amizadequando seu ícone de localizador é clicado ou tocado. | verdadeiro |
thresholdDistance | Limite de distância da câmera em que os ícones do localizador aparecem; amigos mais próximos do que essa distância não exibirão ícones. | 100 |
maxLocators | Número máximo de ícones de localizador mostrados em qualquer momento. | 10 |
LocalScript - Configurar 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
clicou
Incêndios quando um ícone de localizador é clicado/ativado pelo jogador local. Este evento só pode ser conectado em um LocalScript .
Parâmetros | |
---|---|
jogador: Player | Jogador ao qual o ícone de localizador pertence. |
playerCFrame: CFrame | CFrame da do jogador Humanoid.RootPart que o ícone de localizador pertence. |
LocalScript
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 streaming ao redor da localização alvo
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)
visibilidadeAlterada
Dispara quando um ícone de localizador é mostrado/ocultado na tela do jogador local. Este evento só pode ser conectado em um LocalScript .
Parâmetros | |
---|---|
jogador: Player | Player objeto ao qual o ícone de localizador pertence. |
playerCFrame: CFrame | CFrame da do jogador Humanoid.RootPart que o ícone de localizador pertence. |
é Visível: boolean | Se o ícone de localizador está atualmente visível na tela do jogador local.Observe que isso ainda será true se alwaysOnTop for false e o localizador renderizar atrás de um objeto no 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)