Prompt di prossimità

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

ProximityPrompt oggetti incoraggiano l'interazione dell'utente a attivare un'azione quando si avvicinano agli oggetti in-experience come porte, interruttori luminosi e pulsanti.Usando questo oggetto, puoi:

  • Indica quali oggetti un utente può interagire nell'esperienza.
  • Mostra l'azione che un utente può eseguire sull'oggetto, quindi attiva l'azione tramite l'input dell'utente come premere o tenere premuto una chiave.
  • Mostra l'input corretto per tutti i tipi di input, come una tastiera, un gamepad e le chiavi dello schermo touch.

Crea prompt di prossimità

Devi genitori le richieste di vicinanza alla parte, al modello o all' allegato con cui vuoi che un utente interagisca.Per aggiungere una richiesta di prossimità a un oggetto BasePart, Model o Attachment :

  1. Nella finestra Explorer, passa il mouse su BasePart, Model o Attachment e clicca il pulsante ⊕. Un menu contestuale viene visualizzato.

  2. Dal menu, inserisci un Prompt di prossimità .

    Explorer hierarchy showing a ProximityPrompt parented to an Attachment

Personalizza i prompt di prossimità

Puoi personalizzare una richiesta di prossimità in base a come vuoi che appaia quando vuoi che sia visibile e a ciò che vuoi che un utente faccia per attivare l'azione .

Aspetto

Gli avvisi di prossimità devono comunicare tre cose:

  • L'oggetto che un utente può interagire con.
  • L'azione che si attiva quando interagiscono con il prompt di prossimità .
  • La chiave che un utente deve premere o tenere premuta.

Puoi specificarli attraverso le seguenti proprietà:

  • ObjectText Un nome opzionale per l'oggetto con cui un utente può interagire.

  • ActionText Un nome opzionale per l'azione che un utente grilletto.

  • KeyboardKeyCode La tastiera che un utente deve premere o tenere premuta per attivare l'azione.

  • GamepadKeyCode La chiave del gamepad che un utente deve premere o tenere premuta per attivare l'azione.

    Diagram indicating basic elements of a ProximityPrompt

Visibilità

Puoi controllare quando l'avviso di prossimità è visibile attraverso le sue proprietà MaxActivationDistance, RequiresLineOfSight e Exclusivity.

Distanza di attivazione massima

La proprietà MaxActivationDistance consente di definire l'intervallo intorno all'oggetto ProximityPrompt che attiva la visibilità del prompt di prossimità.Una volta che il personaggio di un utente entra in quel range, l'invito di prossimità diventa visibile.

Diagram indicating how a character's distance from a ProximityPrompt object affects whether the prompt appears on screen

Richiede LineOfSight

La proprietà attiva la visibilità del prompt di prossimità quando c'è un percorso chiaro dalla fotocamera all'oggetto >.Per impostazione predefinita, questa proprietà è impostata su true.

Esclusività

Se il personaggio di un utente è a portata di più prompt di prossimità, la visibilità di ciascun prompt di prossimità dipende da quale prompt di prossimità la fotocamera si sta dirigendo, nonché dal valore della proprietà Exclusivity di ciascun prompt di prossimità.

ProximityPrompt objects set to exclusivity of OnePerButton
Solo un prompt di prossimità è visibile per ogni codice di input.Se più prompt di prossimità a portata utilizzano codici diversi, sono tutti visibili.Tuttavia, se più prompt di prossimità in portata utilizzano lo stesso codice chiave, solo un prompt di prossimità è visibile in qualsiasi momento, a seconda della direzione di visione della Telecamera.

Interattività

Puoi personalizzare il modo in cui un utente interagisce con una richiesta di prossimità attraverso le sue proprietà HoldDuration e ClickablePrompt.

Durata Hold

La proprietà HoldDuration determina quante secondi deve premere un utente prima che l'azione del prompt di prossimità si attivi.Se questa proprietà ha un valore di 0 , l'azione del prompt di prossimità si attiva immediatamente.

Prompt Clickabile

La proprietà ClickablePrompt specifica se un utente può fare clic su un prompt di prossimità per attivare la sua azione.Quando è impostato su vero , un utente può interagire con il prompt di prossimità facendo clic direttamente sul prompt di prossimità o premendo la chiave specificata.Quando è impostato su falso , un utente può interagire solo con il prompt di prossimità premendo la chiave specificata.

Prompt di prossimità dello script

Puoi connetterti agli eventi di avviso di prossimità sia sull'oggetto ProximityPrompt stesso o globalmente attraverso ProximityPromptService .Il ProximityPromptService ti consente di gestire tutto il comportamento degli avvisi di prossimità da una posizione, impedendo la necessità di codice duplicato nella tua esperienza.

EventoDescrizione
PromptTriggeredSi accende quando un giocatore interagisce con un prompt di prossimità (dopo la durata per un prompt con non zero HoldDuration ).
PromptTriggerEndedSi attiva quando il giocatore smette di interagire con un prompt di prossimità.
PromptButtonHoldBeganSi accende quando un giocatore inizia a interagire con un prompt di prossimità con un valore non zero HoldDuration .
PromptButtonHoldEndedSi accende quando un giocatore smette di interagire con un prompt di prossimità con un valore non zero HoldDuration .
PromptShownSi attiva in LocalScripts quando viene reso visibile un prompt di prossimità.
PromptHiddenTrigger in LocalScripts quando un prompt viene nascosto.

Il seguente esempio di codice include un framework di base per l'utilizzo di ProximityPromptService :


local ProximityPromptService = game:GetService("ProximityPromptService")
-- Rileva quando viene richiesto l'avviso
local function onPromptTriggered(promptObject, player)
end
-- Rileva quando inizia il mantenimento della prompt
local function onPromptHoldBegan(promptObject, player)
end
-- Rileva quando le estremità del prompt vengono mantenute
local function onPromptHoldEnded(promptObject, player)
end
-- Connetti eventi di prompt di elaborazione alle funzioni di elaborazione
ProximityPromptService.PromptTriggered:Connect(onPromptTriggered)
ProximityPromptService.PromptButtonHoldBegan:Connect(onPromptHoldBegan)
ProximityPromptService.PromptButtonHoldEnded:Connect(onPromptHoldEnded)