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 :
Dal menu, inserisci un Prompt di vicinanza .
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.
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.
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à.
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.
Evento | Descrizione |
---|---|
PromptTriggered | Si attiva quando un giocatore interagisce con un prompt di prossimità (dopo la durata per un prompt con non-零 HoldDuration ). |
PromptTriggerEnded | Si attiva quando il giocatore smette di interagire con un prompt di vicinanza. |
PromptButtonHoldBegan | Si attiva quando un giocatore inizia ad interagire con un prompt di vicinanza con un valore non zero HoldDuration . |
PromptButtonHoldEnded | Si attiva quando un giocatore smette di interagire con un prompt di vicinanza con un valore non zero HoldDuration . |
PromptShown | Si attiva in LocalScripts quando viene visualizzata una richiesta di vicinanza. |
PromptHidden | Si 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)