Localizador de Amigos

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

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:

  1. Da aba Ver, abra a Caixa de Ferramentas e selecione a aba Loja do Criador .

    Toolbox toggle button in Studio
  2. Certifique-se de que a classificação Modelos está selecionada, então clique no botão Ver Todos para Categorias .

  3. Localize e clique no tijolo Dev Modules .

  4. Localize o módulo Localizador de Amigos e clique nele, ou arraste-e-solte-o para a ver3D.

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

  1. Em StarterPlayerScripts , crie um novo LocalScript e renomeie-o Configurar Localizador de Amigos .

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

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

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

  1. Certifique-se de ter criado o script ConfigureFriendsLocator descrito em teste no Studio.

  2. Adicione as linhas 8 e 11-13 ao script:

    LocalScript - Configurar 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 depuração no Studio
    teleportToFriend = false, -- Prevenir teleporte ao clicar/tocar no ícone
    })
    FriendsLocator.clicked:Connect(function(player, playerCFrame)
    print("You clicked on locator icon for", player.DisplayName)
    end)
  3. 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:

  1. Crie uma nova instância ScreenGui dentro do contêiner StarterGui .

  2. Crie uma instância Frame chamada FriendLocator como filho do novo ScreenGui, então adicione elementos como ImageLabels , TextLabels para projetar sua interface personalizada.

  3. Quando terminado, desative o pai ScreenGui para que o módulo não mostre a interface de localizador personalizada até que seja necessário.

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

    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.

ChaveDescriçãoPadrão
alwaysOnTopSe true , mostra ícones de localizador no topo de tudo, impedindo que sejam bloqueados por objetos do mundo 3D.verdadeiro
showAllPlayersSe true , mostra locais para todos os jogadores, não apenas amigos; isso pode ajudar a verificar a funcionalidade do módulo no Studio.falso
teleportToFriendTeletransporta o personagem do jogador para a localização do amizadequando seu ícone de localizador é clicado ou tocado.verdadeiro
thresholdDistanceLimite 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
maxLocatorsNú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: PlayerJogador ao qual o ícone de localizador pertence.
playerCFrame: CFrameCFrame 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: PlayerPlayer objeto ao qual o ícone de localizador pertence.
playerCFrame: CFrameCFrame da do jogador Humanoid.RootPart que o ícone de localizador pertence.
é Visível: booleanSe 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)