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

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

Trova e fai clic sulla tessera Pacchetti.
Trova 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 avviato il gioco, 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 presenti in un test di gioco in solitaria.
In StarterPlayerScripts, crea un nuovo LocalScript e rinominalo ConfigureFriendsLocator.

Incolla il seguente codice nel nuovo script ConfigureFriendsLocator. L'impostazione showAllPlayers all'interno della funzione configure garantisce che i localizzatori vengano mostrati per tutti gli utenti durante il test 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 di localizzatore apparire sopra la sua testa.

Collegati agli eventi
Il modulo FriendsLocator espone eventi in modo da poter introdurre comportamenti personalizzati quando gli utenti interagiscono con un'icona di 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 dell'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 viene teletrasportato in quella posizione e l'evento viene attivato per consentire la gestione personalizzata dei clic sulle icone.
UI del localizzatore personalizzata
Se lo stile predefinito non si adatta al tuo gioco, puoi sostituire l'interfaccia utente del ritratto dell'avatar predefinita con la tua interfaccia utente.

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 il genitore ScreenGui in modo che il modulo non mostri l'interfaccia utente del localizzatore personalizzato fino a quando non è necessario.

- OPZIONALESe desideri che il ritratto dell'avatar dell'amico e il DisplayName vengano visualizzati da qualche parte nell'interfaccia utente personalizzata, puoi posizionare le seguenti istanze all'interno del frame FriendLocator.
- Un ImageLabel di nome Portrait.
- Un TextLabel di nome DisplayName.

Il modulo cercherà questi elementi e visualizzerà rispettivamente il ritratto dell'avatar dell'amico e/o il nome visualizzato.
Riferimento API
Funzioni
configure
configure(config: table)
Sovrascrive le opzioni di configurazione predefinite tramite le seguenti chiavi/valori nella tabella config.
| Chiave | Descrizione | Predefinito |
|---|---|---|
| alwaysOnTop | Se true, mostra le icone dei localizzatori sopra tutto, impedendo che vengano bloccate da oggetti del mondo 3D. | true |
| showAllPlayers | Se true, mostra le posizioni per tutti i giocatori, non solo per 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 la sua 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 mostreranno icone. | 100 |
| maxLocators | Numero massimo di icone dei localizzatori mostrate in un dato momento. | 10 |
local 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 collegato 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. |
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 viene mostrata/nascosta sullo schermo del giocatore locale. Questo evento può essere collegato 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 visualizzato dietro un oggetto nel mondo 3D. |
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)