Localizzatore amici

Può essere difficile localizzare gli amici nell'esperienza. Il Modulo sviluppatore del Localizzatore amici consente ai giocatori di trovare e teletrasportare facilmente i propri amici all'interno di un luogo.

Utilizzo del modulo

Installazione

Per utilizzare il modulo LocalizzatoreAmici in un'esperienza:

  1. Dalla scheda Visualizza, aprire il Pannello degli strumenti e selezionare la scheda Marketplace.

    attiva il pulsante degli Strumenti in Studio
  2. Assicurarsi che la selezione dei modelli sia selezionata, quindi fare clic sul pulsante Vedi tutto per le Categorie.

  3. Individuare e fare clic sulla piastrella DEV MODULES.

  4. Individuare il modulo Localizzatore amici e fare clic su di esso, o trascinarlo e rilasciarlo nella visualizzazione 3D.

  5. Nella finestra Explorer, spostare l'intero modello LocalizzatoreAmici in ServerScriptService. Dopo aver avviato l'esperienza, il modulo si distribuirà a vari servizi e inizierà a funzionare.

Test in Studio

Per testare il modulo in Studio, il modulo LocalizzatoreAmici deve essere eseguito in una simulazione multi-client, poiché nessun amico sarà presente in un playtest da solo.

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

  2. Incolla il seguente codice nel nuovo script ConfiguraLocalizzatoreAmici. L'showAllPlayersimpostazione all'interno della funzione di configurazione assicura che i localizzatori vengano visualizzati per tutti gli utenti durante il test in Studio, ma non in un luogo pubblico.

    LocalScript - ConfigureFriendsLocator

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

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

Collegarsi agli eventi

Il modulo LocalizzatoreAmici espone gli eventi in modo da poter introdurre comportamenti personalizzati quando gli utenti interagiscono con un'icona del localizzatore.

  1. Assicurati di aver creato lo script ConfiguraLocalizzatoreAmici delineato in Test in Studio.

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

    LocalScript - ConfigureFriendsLocator

    local RunService = game:GetService("RunService")
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local FriendsLocator = require(ReplicatedStorage:WaitForChild("FriendsLocator"))
    FriendsLocator.configure({
    showAllPlayers = RunService:IsStudio(), -- Allows for debugging in Studio
    teleportToFriend = false, -- Prevent teleport on icon click/tap
    })
    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'icona del localizzatore di un altro personaggio. Nota che il tuo personaggio non si teletrasporta in quella posizione e l'evento si attiva per consentire la gestione personalizzata dei clic sulle icone.

UI di localizzazione personalizzata

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

Per sostituire l'UI predefinita:

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

  2. Crea un'Frameistanza denominata LocalizzatoreAmici come figlia del nuovo ScreenGui.

  3. Progetta la tua UI personalizzata aggiungendo ImageLabels, TextLabels, ecc. al riquadro LocalizzatoreAmici.

  4. Al termine, disattiva il genitore ScreenGuiaffinché il modulo non mostri l'UI del localizzatore personalizzata fino a quando non è necessario.

  5. (Facoltativo) Se vuoi che il ritratto dell'avatar dell'amico e DisplayName appaiano da qualche parte nell'UI personalizzata, puoi posizionare le seguenti istanze all'interno della cornice LocalizzatoreAmici.

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

Riferimento API

Funzioni

Configurare

configure(config:table):nil

Sovrascrive la configurazione predefinita attraverso le seguenti chiavi/valori nella configtabella.

ChiaveDescrizionePredefinito
alwaysOnTopSe true, mostra le icone del localizzatore sopra tutto, impedendo loro di essere bloccati dagli oggetti del mondo 3D.vero
showAllPlayersSe true, mostra le posizioni per tutti i giocatori, non solo per gli amici; questo può aiutare a controllare la funzionalità del modulo in Studio.falso
teleportToFriendTeletrasporta il personaggio del giocatore nella posizione dell'amico quando la sua icona del localizzatore viene cliccata o toccata.vero
thresholdDistanceSoglia della distanza della telecamera in cui appaiono le icone del localizzatore; gli amici più vicini a questa distanza non visualizzeranno le icone.100
maxLocatorsNumero massimo di icone del localizzatore mostrate in un dato momento.10
LocalScript - ConfigureFriendsLocator

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

cliccato(player:Player, playerCFrame:CFrame): RBXScriptSignal

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

Parametri
giocatore: PlayerGiocatore a cui appartiene l'icona del localizzatore.
playerCFrame:CFrameCFrame del giocatore Humanoid.RootPart a cui appartiene l'icona del localizzatore.
LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local FriendsLocator = require(ReplicatedStorage:WaitForChild("FriendsLocator"))
FriendsLocator.clicked:Connect(function(player, playerCFrame)
print("You clicked on locator icon for", player.DisplayName, "at position", playerCFrame.Position)
end)

visibilitàCambiata

visibilitàCambiata(player:Player, playerCFrame:CFrame, isVisible:booleano): RBXScriptSignal

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

Parametri
giocatore: PlayerL'oggetto Player a cui appartiene l'icona del localizzatore.
playerCFrame:CFrameCFrame del giocatore Humanoid.RootPart a cui appartiene l'icona del localizzatore.
isVisible:booleanSe l'icona del localizzatore è attualmente visibile sullo schermo del giocatore locale. Nota che questo sarà ancora true se alwaysOnTopè false e il localizzatore si renderizza dietro un oggetto nel mondo 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)