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:
Dalla scheda Visualizza, aprire il Pannello degli strumenti e selezionare la scheda Marketplace.
Assicurarsi che la selezione dei modelli sia selezionata, quindi fare clic sul pulsante Vedi tutto per le Categorie.
Individuare e fare clic sulla piastrella DEV MODULES.
Individuare il modulo Localizzatore amici e fare clic su di esso, o trascinarlo e rilasciarlo nella visualizzazione 3D.
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.
In StarterPlayerScripts, crea un nuovo LocalScript e rinominalo in ConfiguraLocalizzatoreAmici.
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 - ConfigureFriendsLocatorlocal 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})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.
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.
Assicurati di aver creato lo script ConfiguraLocalizzatoreAmici delineato in Test in Studio.
Aggiungi le righe 8 e 11-13 allo script:
LocalScript - ConfigureFriendsLocatorlocal RunService = game:GetService("RunService")local ReplicatedStorage = game:GetService("ReplicatedStorage")local FriendsLocator = require(ReplicatedStorage:WaitForChild("FriendsLocator"))FriendsLocator.configure({showAllPlayers = RunService:IsStudio(), -- Allows for debugging in StudioteleportToFriend = false, -- Prevent teleport on icon click/tap})FriendsLocator.clicked:Connect(function(player, playerCFrame)print("You clicked on locator icon for", player.DisplayName)end)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:
Crea una nuova istanza ScreenGui all'interno del contenitore StarterGui.
Progetta la tua UI personalizzata aggiungendo ImageLabels, TextLabels, ecc. al riquadro LocalizzatoreAmici.
Al termine, disattiva il genitore ScreenGuiaffinché il modulo non mostri l'UI del localizzatore personalizzata fino a quando non è necessario.
(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.
- Un ImageLabel del nome Ritratto.
- Un TextLabel del nome NomeDisplay.
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.
Chiave | Descrizione | Predefinito |
---|---|---|
alwaysOnTop | Se true, mostra le icone del localizzatore sopra tutto, impedendo loro di essere bloccati dagli oggetti del mondo 3D. | vero |
showAllPlayers | Se 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 |
teleportToFriend | Teletrasporta il personaggio del giocatore nella posizione dell'amico quando la sua icona del localizzatore viene cliccata o toccata. | vero |
thresholdDistance | Soglia della distanza della telecamera in cui appaiono le icone del localizzatore; gli amici più vicini a questa distanza non visualizzeranno le icone. | 100 |
maxLocators | Numero 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: Player | Giocatore a cui appartiene l'icona del localizzatore. |
playerCFrame:CFrame | CFrame 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: Player | L'oggetto Player a cui appartiene l'icona del localizzatore. |
playerCFrame:CFrame | CFrame del giocatore Humanoid.RootPart a cui appartiene l'icona del localizzatore. |
isVisible:boolean | Se 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)