Può essere difficile localizzare gli amici all'interno dell'esperienza. Il FriendsLocator modulo per sviluppatori consente ai giocatori di trovare facilmente e teleportare ai loro amici all'interno di un luogo.
Utilizzo del modulo
Installazione
Per utilizzare il modulo FriendsLocator in un'esperienza:
Dal menu Finestra di Studio o dalla barra degli strumenti della scheda Home, apri il Toolbox e seleziona la scheda Creator Store.

Assicurati che sia selezionato l'ordinamento Modelli, quindi fai clic sul pulsante Vedi Tutti per le Categorie.

Individua e fai clic sulla tile Pacchetti.
Individua il modulo Localizzatore Amici e fai clic su di esso, oppure trascinalo nella vista 3D.

Nella finestra Esplora, sposta l'intero modello FriendsLocator in ReplicatedStorage. Una volta avviata l'esperienza, il modulo 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 in un test di gioco in solitario.
In StarterPlayerScripts, crea un nuovo LocalScript e rinominalo ConfigureFriendsLocator.

Incolla il seguente codice nel nuovo script ConfigureFriendsLocator. L'impostazione showAllPlayers all'interno della configurazione garantisce che i localizzatori siano mostrati per tutti gli utenti mentre si testa in Studio, ma non in un luogo pubblicato.
LocalScript - ConfigureFriendsLocatorlocal RunService = game:GetService("RunService")local ReplicatedStorage = game:GetService("ReplicatedStorage")local FriendsLocator = require(ReplicatedStorage.FriendsLocator)FriendsLocator.configure({showAllPlayers = RunService:IsStudio(), -- Consente il debug in Studio})Dalla mezzanina di Studio, avvia una simulazione multi-client con 2 client. Si apriranno tre nuove istanze di Studio; un server simulato e due client simulati.

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

Collegamento agli eventi
Il modulo FriendsLocator espone eventi in modo da poter introdurre comportamenti personalizzati quando gli utenti interagiscono con un'icona del localizzatore.
Assicurati di aver creato lo script ConfigureFriendsLocator descritto 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.FriendsLocator)FriendsLocator.configure({showAllPlayers = RunService:IsStudio(), -- Consente il debug in StudioteleportToFriend = false, -- Impedisce il teletrasporto al clic/tocco sull'icona})FriendsLocator.clicked:Connect(function(player, playerCFrame)print("Hai cliccato sull'icona del localizzatore per", 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 a quella posizione e l'evento si attiva per consentire la gestione personalizzata dei clic sull'icona.
UI del localizzatore personalizzata
Se lo stile predefinito non si adatta alla tua esperienza, puoi sostituire l'interfaccia utente dell'immagine dell'avatar predefinita con la tua UI.

Per sostituire l'interfaccia utente predefinita:
Crea una nuova istanza ScreenGui all'interno del contenitore StarterGui.

Crea un'istanza Frame chiamata FriendLocator come figlio della nuova ScreenGui, quindi aggiungi elementi come ImageLabels, TextLabels per progettare la tua interfaccia utente personalizzata.

Quando hai finito, disabilita la ScreenGui genitore in modo che il modulo non mostri l'interfaccia utente del localizzatore personalizzata fino a quando non è necessario.

(Opzionale) Se desideri che l'immagine del ritratto dell'avatar dell'amico e DisplayName vengano visualizzati in qualche punto nell'interfaccia utente personalizzata, puoi collocare le seguenti istanze all'interno del frame FriendLocator.
- Un ImageLabel con il nome Portrait.
- Un TextLabel con il nome DisplayName.

Il modulo cercherà questi elementi e mostrerà il ritratto dell'avatar dell'amico e/o il nome visualizzato rispettivamente.
Riferimento API
Funzioni
configure
configure(config: table)
Sovrascrive le opzioni di configurazione predefinite attraverso le seguenti chiavi/valori nella tabella config.
| Chiave | Descrizione | Predefinito |
|---|---|---|
| alwaysOnTop | Se true, mostra le icone dei localizzatori sopra a tutto, impedendo che vengano bloccate da oggetti del mondo 3D. | true |
| showAllPlayers | Se true, mostra le posizioni per tutti i giocatori, non solo gli amici; questo può aiutare a verificare la funzionalità del modulo in Studio. | false |
| teleportToFriend | Teletrasporta il personaggio del giocatore nella posizione dell'amico quando l'icona del localizzatore viene cliccata o toccata. | true |
| thresholdDistance | Soglia di distanza della telecamera alla quale appaiono le icone dei localizzatori; gli amici più vicini di questa distanza non visualizzeranno icone. | 100 |
| maxLocators | Numero massimo di icone dei localizzatori mostrate in un dato momento. | 10 |
LocalScript - ConfigureFriendsLocatorlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local FriendsLocator = require(ReplicatedStorage.FriendsLocator)FriendsLocator.configure({alwaysOnTop = true,showAllPlayers = false,teleportToFriend = true,thresholdDistance = 100,maxLocators = 10})
Eventi
clicked
Si attiva quando un'icona del localizzatore viene cliccata/attivata dal giocatore locale. Questo evento può essere connesso solo in un LocalScript.
| Parametri | |
|---|---|
| player: Player | Giocatore a cui appartiene l'icona del localizzatore. |
| playerCFrame: CFrame | CFrame della Humanoid.RootPart del giocatore a cui appartiene l'icona del localizzatore. |
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")
local FriendsLocator = require(ReplicatedStorage.FriendsLocator)
local localPlayer = Players.LocalPlayer
FriendsLocator.clicked:Connect(function(player, playerCFrame)
-- Richiedi streaming attorno 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("Hai cliccato sull'icona del localizzatore per", player.DisplayName, "alla posizione", playerCFrame.Position)
end)
visibilityChanged
Si attiva quando un'icona del localizzatore è mostrata/nascosta sullo schermo del giocatore locale. Questo evento può essere connesso solo in un LocalScript.
| Parametri | |
|---|---|
| player: Player | Oggetto Player a cui appartiene l'icona del localizzatore. |
| playerCFrame: CFrame | CFrame della Humanoid.RootPart del giocatore 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à comunque true se alwaysOnTop è false e il localizzatore viene reso dietro un oggetto nel mondo 3D. |
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local FriendsLocator = require(ReplicatedStorage.FriendsLocator)
FriendsLocator.visibilityChanged:Connect(function(player, playerCFrame, isVisible)
print("Visibilità dell'icona del localizzatore per", player.DisplayName, ":", isVisible)
end)