ProximityPrompt oggetti incoraggiano l'interazione dell'utente per attivare un'azione quando si avvicinano a oggetti in esperienza come porte, interruttori e pulsanti. Utilizzando questo oggetto, puoi:
- Indicare quali oggetti un utente può interagire nell'esperienza.
- Mostrare l'azione che un utente può eseguire sull'oggetto, quindi attivare l'azione attraverso input dell'utente come premere o tenere premuto un tasto.
- Visualizzare l'input corretto per tutti i tipi di input, come tastiera, gamepad e tasti touchscreen.
Crea promemoria di prossimità
Devi collegare i promemoria di prossimità alla parte, modello o attacco con cui vuoi che un utente interagisca. Per aggiungere un promemoria di prossimità a un oggetto BasePart, Model o Attachment:
- Nella finestra Explorer, posiziona il cursore sopra il BasePart, Model o Attachment e fai clic sul pulsante ⊕. Viene visualizzato un menu contestuale.
- Nel menu, inserisci un ProximityPrompt.

Personalizza i promemoria di prossimità
Puoi personalizzare un promemoria di prossimità in base a come vuoi che appaia apparenza, quando vuoi che sia visibile e cosa vuoi che un utente faccia per attivare l'azione.
Aspetto
I promemoria di prossimità devono comunicare tre cose:
- L'oggetto con cui un utente può interagire.
- L'azione che viene attivata quando interagiscono con il promemoria di prossimità.
- Il tasto che un utente deve premere o tenere premuto.
Puoi specificare questi attraverso le seguenti proprietà:
ObjectText Un nome facoltativo per l'oggetto con cui un utente può interagire.
ActionText Un nome facoltativo per l'azione che un utente attiverà.
KeyboardKeyCode Il tasto della tastiera che un utente deve premere o tenere premuto per attivare l'azione.
GamepadKeyCode Il tasto del gamepad che un utente deve premere o tenere premuto per attivare l'azione.

Visibilità
Puoi controllare quando il promemoria di prossimità è visibile attraverso le sue proprietà MaxActivationDistance, RequiresLineOfSight, e Exclusivity.
MaxActivationDistance
La proprietà MaxActivationDistance consente di definire il raggio intorno all'oggetto ProximityPrompt che attiva la visibilità del promemoria di prossimità. Una volta che il personaggio di un utente entra in quel raggio, il promemoria di prossimità diventa visibile.

RequiresLineOfSight
La proprietà RequiresLineOfSight attiva la visibilità del promemoria di prossimità quando c'è un percorso chiaro dalla telecamera all'oggetto ProximityPrompt. Per impostazione predefinita, questa proprietà è impostata su true.
Exclusivity
Se il personaggio di un utente è entro il raggio di più promemoria di prossimità, la visibilità di ciascun promemoria di prossimità dipende da quale promemoria di prossimità la telecamera sta puntando, così come dal valore della proprietà Exclusivity di ciascun promemoria di prossimità.

Interattività
Puoi personalizzare in che modo un utente interagisce con un promemoria di prossimità attraverso le sue proprietà HoldDuration e ClickablePrompt.
HoldDuration
La proprietà HoldDuration determina quanti secondi un utente deve premere un tasto prima che si attivi l'azione del promemoria di prossimità. Se questa proprietà ha un valore di 0, l'azione del promemoria di prossimità si attiva immediatamente.
ClickablePrompt
La proprietà ClickablePrompt specifica se un utente può fare clic su un promemoria di prossimità per attivare la sua azione. Quando impostato su true, un utente può interagire con il promemoria di prossimità facendo clic direttamente sul promemoria o premendo il tasto specificato. Quando impostato su false, un utente può interagire con il promemoria di prossimità solo premendo il tasto specificato.
Script promemoria di prossimità
Puoi connetterti agli eventi del promemoria di prossimità sia sull'oggetto ProximityPrompt stesso che globalmente attraverso ProximityPromptService. Il ProximityPromptService ti consente di gestire tutto il comportamento del promemoria di prossimità da un'unica posizione, evitando la necessità di codice duplicato nella tua esperienza.
| Evento | Descrizione |
|---|---|
| PromptTriggered | Si attiva quando un giocatore interagisce con un promemoria di prossimità (dopo la durata per un promemoria con un HoldDuration diverso da zero). |
| PromptTriggerEnded | Si attiva quando il giocatore smette di interagire con un promemoria di prossimità. |
| PromptButtonHoldBegan | Si attiva quando un giocatore inizia a interagire con un promemoria di prossimità con un valore di HoldDuration diverso da zero. |
| PromptButtonHoldEnded | Si attiva quando un giocatore smette di interagire con un promemoria di prossimità con un valore di HoldDuration diverso da zero. |
| PromptShown | Si attiva in LocalScripts quando un promemoria di prossimità diventa visibile. |
| PromptHidden | Si attiva in LocalScripts quando un promemoria viene nascosto. |
Il seguente esempio di codice include un framework di base per l'uso di ProximityPromptService:
local ProximityPromptService = game:GetService("ProximityPromptService")
-- Rileva quando il promemoria è attivato
local function onPromptTriggered(promptObject, player)
end
-- Rileva quando inizia il mantenimento del promemoria
local function onPromptHoldBegan(promptObject, player)
end
-- Rileva quando termina il mantenimento del promemoria
local function onPromptHoldEnded(promptObject, player)
end
-- Collega gli eventi del promemoria alle funzioni di gestione
ProximityPromptService.PromptTriggered:Connect(onPromptTriggered)
ProximityPromptService.PromptButtonHoldBegan:Connect(onPromptHoldBegan)
ProximityPromptService.PromptButtonHoldEnded:Connect(onPromptHoldEnded)