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

Personalizza i promemoria di prossimità
Puoi personalizzare un promemoria di prossimità in base a come desideri che appaia, quando desideri che sia visibile e cosa desideri 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 si attiva 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 ti consente di definire il raggio attorno 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 camera 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 camera sta puntando, così come dal valore della proprietà Exclusivity di ciascun promemoria di prossimità.

Interattività
Puoi personalizzare come 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 l'azione del promemoria di prossimità venga attivata. Se questa proprietà ha un valore di 0, l'azione del promemoria di prossimità viene attivata 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 di prossimità 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 collegarti 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 nel tuo gioco.
| Evento | Descrizione |
|---|---|
| PromptTriggered | Si attiva quando un giocatore interagisce con un promemoria di prossimità (dopo la durata per un promemoria con 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à viene reso visibile. |
| PromptHidden | Si attiva in LocalScripts quando un promemoria viene nascosto. |
Il seguente esempio di codice include un framework di base per utilizzare ProximityPromptService:
local ProximityPromptService = game:GetService("ProximityPromptService")
-- Rileva quando il promemoria viene attivato
local function onPromptTriggered(promptObject, player)
end
-- Rileva quando inizia la pressione del promemoria
local function onPromptHoldBegan(promptObject, player)
end
-- Rileva quando termina la pressione 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)