Localizzatore amici

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

Può essere impegnativo trovare gli amici in-experience. Il FriendsLocator modulo sviluppatore 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 Visualizza scheda, 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 tutto per Categorie.

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

  4. Individua il Locator Amici modulo e fai clic su di esso, o trascinalo nella vista 3D.

  5. Nella finestra Explorer, spostare l'intero modello FriendsLocator in ServerScriptService . Al momento dell'esecuzione dell'esperienza, il modulo si distribuirà su varie servizi e inizierà a funzionare.

Test in Studio

Per testare il modulo in Studio, il modulo FriendsLocator deve essere eseguito in una simulazione multi-client, poiché non ci saranno amici presenti in un Test di giocabilitàsolitario.

  1. In StarterPlayerScripts , crea un nuovo LocalScript e rinominalo in Class.FriendsLocator .

  2. Incolla il seguente codice nello script nuovo ConfigureFriendsLocator . La impostazione showAllPlayers all'interno della funzione Configura garantisce che i locatori siano mostrati per tutti gli utenti durante il test in Studio, ma non in un Postopubblicato.

    Script locale - Configura il localizzatore di amici

    local RunService = game:GetService("RunService")
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local FriendsLocator = require(ReplicatedStorage:WaitForChild("FriendsLocator"))
    FriendsLocator.configure({
    showAllPlayers = RunService:IsStudio(), -- Consente di debug in Studio
    })
  3. Dalla scheda Test, seleziona la combinazione seguente per Clienti e Server, quindi fai clic sul pulsante Avvia. Tre nuove istanze di Studio si apriranno; una simulata server e due simulata client.

  4. Vai in una delle istanze client Studio, muoviti una distanza di 100 studs dall'altro personaggio e dovresti vedere un icona di posizione apparire sopra la sua testa.

Connessione agli eventi

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

  1. Assicurati di aver creato lo script ConfigureFriendsLocator descrittivo in Testing in Studio .

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

    Script locale - Configura il localizzatore di amici

    local RunService = game:GetService("RunService")
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local FriendsLocator = require(ReplicatedStorage:WaitForChild("FriendsLocator"))
    FriendsLocator.configure({
    showAllPlayers = RunService:IsStudio(), -- Consente di debug in Studio
    teleportToFriend = false, -- Impedisci il teletrasporto quando si fa clic / tocca l'icona
    })
    FriendsLocator.clicked:Connect(function(player, playerCFrame)
    print("You clicked on locator icon for", player.DisplayName)
    end)
  3. Esegui un test multi-client e fai clic sull'Iconadel locatore di un altro personaggio. Nota che il tuo personaggio non si teletrasporta in quella posizione e gli eventi consentono di consentire la gestione personalizzata dei clic sull'icona.

Interfaccia utente localizzata

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

Per sostituire l'interfaccia utente predefinita:

  1. Crea una nuova istanza ScreenGui all'interno del contenitore StarterGui .

  2. Crea un'istanza Frame chiamata FriendLocator come figlio della nuova ScreenGui , quindi aggiungi elementi come 1> Class.ImageLabel|ImageTags1> , 4> Class.TextLabel|TextTags4> per progettare la tua interfaccia utente personalizzata.

  3. Quando hai finito, disabilita il padre ScreenGui in modo che il modulo non mostri l'interfaccia utente locatore personalizzata fino a quando non è necessario.

  4. (Facoltativo) Se vuoi il ritratto dell'avatar del tuo Amico/Amicae DisplayName per apparire da qualche parte nella UI personalizzata, puoi posizionare le seguenti istanze all'interno della finestra FriendLocator .

    Il modulo cercherà questi oggetti e visualizzerà il ritratto dell'avatar dell'Amico/Amicae/o il nome visualizzato rispettivamente.

Riferimento API

Funzioni

configurare

Configurare(config: Library.table)

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

ChiaveDescrizionePredefinito
alwaysOnTopSe true , mostra i pulsanti di localizzazione nella parte superiore di tutto, impedendoli di essere bloccati da oggetti del mondo 3D.vero
showAllPlayersSe true , mostra le posizioni per tutti i giocatori, non solo gli amici; questo può aiutare a verificare la funzionalità del modulo in Studio.falso
teleportToFriendTeletrasporta il personaggio del giocatore nella posizione dell'Amico/Amicaquando viene cliccato o toccato il loro pulsante di posizione.vero
thresholdDistanceDistanza della telecamera a cui appaiono gli icone del localizzatore; gli amici più vicini a questa distanza non mostreranno icone.100
maxLocatorsNumero massimo di icone del localizzatore mostrate in qualsiasi momento.10
Script locale - Configura il localizzatore di amici

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 attiva quando viene cliccato/attivato un'icona di localizzazione dal Giocatorelocale. Questo evento può essere connesso solo in un LocalScript .

Parametri
Giocatore: PlayerGiocatore a cui appartiene l'icona del localizzatore.
playerCFrame: CFrameCFrame della classe del Giocatoreche il pulsante di localizzazione appartiene.
Script locale

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)
-- Richiedi 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)

visibilityCambiato

Si attiva quando viene mostrato/nascondo un'icona di localizzazione sullo schermo del Giocatorelocale. Questo evento può essere connesso solo in un LocalScript .

Parametri
Giocatore: PlayerPlayer oggetto che l'icona del localizzatore appartiene.
playerCFrame: CFrameCFrame della classe del Giocatoreche il pulsante di localizzazione appartiene.
isVisible: booleanIndipendentemente dal fatto che l'icona del localizzatore sia attualmente visibile sullo schermo del Giocatorelocale. Nota che questo sarà ancora true se alwaysOnTop è false e il rendering del localizzatore 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)