Localizzatore di amici

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

Può essere impegnativo localizzare gli amici in-experience.Il modulo sviluppatore di FriendsLocator consente ai giocatori di trovare facilmente e teletrasportarsi ai loro amici all'interno di un Posto.

Uso del modulo

Installazione

Per utilizzare il modulo FriendsLocator in un'esperienza:

  1. Dalla scheda Visualizza, apri la Toolbox e seleziona la scheda Creator Store .

    Toolbox toggle button in Studio
  2. Assicurati che la classificazione Modelli sia selezionata, quindi fai clic sul pulsante Vedi tutti per Categorie .

  3. Individua e fai clic sul riquadro Moduli di sviluppo .

  4. Individua il modulo Localizzatore amici e cliccalo, o trascinalo nella vista 3D.

  5. Nella finestra Explorer, sposta l'intero modello FriendsLocator nel ServerScriptService .Dopo l'esecuzione dell'esperienza, il modulo si distribuirà a vari servizi e inizierà a funzionare.

Test nell'Studio

Per testare il modulo in Studio, il modulo FriendsLocator deve essere eseguito in una simulazione multi-client, poiché nessun amico sarà presente in un Test di giocabilitàin solitario.

  1. In StarterPlayerScripts , crea una nuova LocalScript e rinominala ConfiguraFriendsLocator .

  2. Incolla il seguente codice nel nuovo script ConfiguraFriendsLocator .La showAllPlayers all'interno della funzione configura garantisce che i localizzatori vengono visualizzati per tutti gli utenti durante il test in Studio, ma non in un Postopubblicato.

    Script locale - ConfiguraFriendsLocator

    local RunService = game:GetService("RunService")
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local FriendsLocator = require(ReplicatedStorage:WaitForChild("FriendsLocator"))
    FriendsLocator.configure({
    showAllPlayers = RunService:IsStudio(), -- Consente il debug in Studio
    })
  3. Dalla scheda Test della barra degli strumenti, seleziona la seguente combinazione per Client e Server , quindi fai clic sul pulsante Avvia .Si apriranno tre nuove istanze di Studio; un server simulato e due client simulati.

  4. Vai in una qualsiasi delle istanze di cliente Studio, sposta una distanza di 100 studs lontano dall'altro personaggio e dovresti vedere un'icona localizzatore apparire sopra la sua testa.

Connetti agli eventi

Il modulo FriendsLocator esposto mostra eventi in modo che tu possa introdurre comportamenti personalizzati quando gli utenti interagiscono con un'Iconadi localizzazione.

  1. Assicurati di aver creato lo script ConfigureFriendsLocator descritto in testing in Studio.

  2. Aggiungi le linee 8 e 11-13 allo script:

    Script locale - ConfiguraFriendsLocator

    local RunService = game:GetService("RunService")
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local FriendsLocator = require(ReplicatedStorage:WaitForChild("FriendsLocator"))
    FriendsLocator.configure({
    showAllPlayers = RunService:IsStudio(), -- Consente il debug in Studio
    teleportToFriend = false, -- Prevenire il teletrasporto sul clic/tap dell'icona
    })
    FriendsLocator.clicked:Connect(function(player, playerCFrame)
    print("You clicked on locator icon for", player.DisplayName)
    end)
  3. Eseguire un test multi-cliente e fare clic sull'Iconadel localizzatore di un altro personaggio.Nota che il tuo personaggio non si teletrasporta in quella posizione e l'evento si attiva per consentire una gestione personalizzata dei clic dell'icona.

Interfaccia utente locatore personalizzata

Se lo stile predefinito non si adatta alla tua esperienza, puoi sostituire l'interfaccia utente predefinita dell'avatar con la tua UI.

Per sostituire l'interfaccia utente predefinita:

  1. Crea una nuova istanza ScreenGui dentro il contenitore StarterGui .

  2. Crea un'istanza Frame chiamata FriendLocator come figlia del nuovo ScreenGui , quindi aggiungi elementi come ImageLabels , TextLabels per progettare la tua interfaccia utente personalizzata.

  3. Quando terminato, disabilita il padre ScreenGui in modo che il modulo non mostri l'interfaccia utente del localizzatore personalizzato fino a quando non è necessario.

  4. (Opzionale) Se vuoi il ritratto dell'avatar del Amico/Amicae DisplayName per apparire da qualche parte nell'interfaccia utente personalizzata, puoi posizionare le seguenti istanze all'interno del quadro FriendLocator .

    Il modulo cercherà questi elementi e mostrerà il ritratto dell'avatar del Amico/Amicae/o il nome di visualizzazione rispettivamente.

Riferimento API

Functioni

configurare

configurare(config: table )

Sovrascrive le opzioni di configurazione predefinite attraverso le seguenti chiavi/valori nella tabella config.

ChiaveDescrizioneBasilare
alwaysOnTopSe true , mostra le icone del localizzatore in cima a tutto, impedendo loro di essere bloccati dagli oggetti del mondo 3D.vero
showAllPlayersSe true , mostra le posizioni per tutti i giocatori, non solo gli amici; ciò può aiutare a verificare la funzionalità del modulo in Studio.fallito
teleportToFriendTeletrasporta il personaggio del giocatore alla posizione dell'Amico/Amicaquando viene cliccata o toccata l'icona del loro localizzatore.vero
thresholdDistanceSoglia della distanza della fotocamera in cui appaiono le icone del localizzatore; gli amici più vicini di questa distanza non visualizzeranno le icone.100
maxLocatorsNumero massimo di icone localizzatore visualizzate in qualsiasi momento.10
Script locale - ConfiguraFriendsLocator

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local FriendsLocator = require(ReplicatedStorage:WaitForChild("FriendsLocator"))
FriendsLocator.configure({
alwaysOnTop = true,
showAllPlayers = false,
teleportToFriend = true,
thresholdDistance = 100,
maxLocators = 10
})

Eventi

cliccato

Si accende quando un'icona di localizzatore viene cliccata/attivata dal Giocatorelocale. Questo evento può essere collegato solo in un LocalScript .

Parametri
giocatore: PlayerGiocatore a cui appartiene l'icona del localizzatore.
playerCFrame: CFrameCFrame del giocatoreHumanoid.RootPart a cui appartiene l'icona del localizzatore.
Script locale

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)
-- Richiesta di streaming intorno alla posizione target
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)

visibilità cambiata

Si accende quando un'icona di localizzatore viene mostrata/nascosta sullo schermo del Giocatorelocale. Questo evento può essere collegato solo in un LocalScript .

Parametri
giocatore: PlayerPlayer oggetto a cui appartiene l'icona del localizzatore.
playerCFrame: CFrameCFrame del giocatoreHumanoid.RootPart a cui appartiene l'icona del localizzatore.
isVisible: booleanSe l'icona del localizzatore è attualmente visibile sullo schermo del Giocatorelocale.Nota che questo sarà ancora true se alwaysOnTop è false e il localizzatore si rende dietro un oggetto nel Mondo3D.
Script locale

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)