Prossimità Prompt

*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 per attivare un'azione quando si avvicinano a oggetti in-experience come porte, interruttori di luce e pulsanti. Utilizzando questo oggetto, puoi:

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

Creazione di prompt di prossimità

Devi aggiungere un prompt di vicinanza a parte, modello o accessorio che vuoi che un utente interagisca. Per aggiungere un prompt di vicinanza a un oggetto BasePart, Model o Attachment :

  1. Nella finestra Explorer, passa il mouse sul BasePart, Model o 2> Class.Arrow2> e fai clic sul pulsante ⊕. Viene visualizzato un menu contestuale.

  2. Dal menu, inserisci un Prompt di vicinanza .

    Explorer hierarchy showing a ProximityPrompt parented to an Attachment

Personalizzare le richieste di prossimità

Puoi personalizzare un messaggio di avvicinamento in base a come vuoi che appaia , quando vuoi che sia visibile , e cosa vuoi che faccia un utente per attivare l'azione .

Aspetto

I prompt di prossimità devono comunicare tre cose:

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

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 Il tasto della tastiera che un utente deve premere o tenere premuto per attivare l'azione.

  • GamepadKeyCode Il gamepad key a un utente deve premere o tenere premuto per attivare l'azione.

    Diagram indicating basic elements of a ProximityPrompt

Visibilità

Puoi controllare quando l'avviso di vicinanza è visibile attraverso il suo MaxActivationDistance , RequiresLineOfSight e Exclusivity proprietà.

DistanceMax di attivazione

La proprietà MaxActivationDistance ti consente di definire la portata intorno all'oggetto ProximityPrompt che attiva la visibilità della richiesta di prossimità. Una volta che un personaggio dell'utente entra in quella portata, la richiesta di prossimità diventa visibile.

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

RichiedeLineOfSight

La proprietà RequiresLineOfSight attiva la visibilità del prompt di vicinanza quando c'è un percorso chiaro dalla fotocamera alla proprietà Class.ProximityPrompt . Per oggettopredefinita, questa proprietà è impostata su true.

Esclusività

Se il personaggio di un utente è all'interno di più richieste di prossimità, la visibilità di ciascuna richiesta di prossimità dipende dalla quale richiesta di prossimità la fotocamera punta, nonché dal valore della proprietà Exclusivity della richiesta di prossimità.

ProximityPrompt objects set to exclusivity of OnePerButton
Solo un avviso di vicinanza è visibile per ogni codice di input. Se più avvisi di vicinanza in範围 utilizzano diversi codici di chiave, sono tutti visibili. Tuttavia, se più avvisi di vicinanza in範围 utilizzano lo stesso codice di chiave, solo un avviso di vicinanza è visibile in qualsiasi momento, a seconda della direzione di visuale della Telecamera.

Interattività

Puoi personalizzare il modo in cui un utente interagisce con un prompt di vicinanza attraverso i suoi HoldDuration e ClickablePrompt proprietà.

Durata di持续

La proprietà HoldDuration determinare il numero di secondi che un utente deve premere una chiave prima che l'azione della prossimità richieda. Se questa proprietà ha un valore di 0 , l'azione della prossimità richiede immediatamente.

ClickabilePrompt

La proprietà ClickablePrompt specifica se un utente può fare clic su un prompt di vicinanza per attivarlo. Quando impostato su vero , un utente può interagire con il prompt di vicinanza facendo clic direttamente sul prompt di vicinanza o premendo il tasto specificato. Quando imp

Scripting Proximity Prompt

Puoi connetterti agli eventi di avviso di prossimità sia sull'oggetto ProximityPrompt stesso che globalmente attraverso ProximityPromptService . Il ProximityPromptService ti consente di gestire tutto il comportamento dell'avviso di prossimità da un'unica posizione, evitando qualsiasi necessità di duplicare il codice nella tua esperienza.

EventoDescrizione
PromptTriggeredSi attiva quando un giocatore interagisce con un prompt di prossimità (dopo la durata per un prompt con non-零 HoldDuration ).
PromptTriggerEndedSi attiva quando il giocatore smette di interagire con un prompt di vicinanza.
PromptButtonHoldBeganSi attiva quando un giocatore inizia ad interagire con un prompt di vicinanza con un valore non zero HoldDuration .
PromptButtonHoldEndedSi attiva quando un giocatore smette di interagire con un prompt di vicinanza con un valore non zero HoldDuration .
PromptShownSi attiva in LocalScripts quando viene visualizzata una richiesta di vicinanza.
PromptHiddenSi attiva in LocalScripts quando un'istanza è nascosta.

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


local ProximityPromptService = game:GetService("ProximityPromptService")
-- Rileva quando viene attivata la richiesta
local function onPromptTriggered(promptObject, player)
end
-- Rileva quando inizia a essere spento
local function onPromptHoldBegan(promptObject, player)
end
-- Rileva quando viene terminata la tenuta della richiesta
local function onPromptHoldEnded(promptObject, player)
end
-- Connetti gli eventi richiesti alle funzioni di elaborazione
ProximityPromptService.PromptTriggered:Connect(onPromptTriggered)
ProximityPromptService.PromptButtonHoldBegan:Connect(onPromptHoldBegan)
ProximityPromptService.PromptButtonHoldEnded:Connect(onPromptHoldEnded)