ProximityPrompt nesneleri, kullanıcıların oyun içindeki kapılar, ışık anahtarları ve butonlar gibi nesnelere yaklaştıklarında bir eylemi tetiklemeleri için etkileşimi teşvik eder. Bu nesneyi kullanarak şunları yapabilirsiniz:
- Kullanıcının oyunda etkileşimde bulunabileceği nesneleri belirtin.
- Kullanıcının nesne üzerinde gerçekleştirebileceği eylemi gösterin, ardından eylemi bir tuşa basma veya tutma gibi kullanıcı girişi ile tetikleyin.
- Klavye, oyun kumandası ve dokunmatik ekran tuşları gibi tüm giriş türleri için doğru girişi gösterin.
Yakınlık istemleri oluşturma
Kullanıcıların etkileşimde bulunmasını istediğiniz parça, model veya eklemeye yakınlık istemlerini yerleştirmelisiniz. Bir BasePart, Model veya Attachment nesnesine yakınlık istemi eklemek için:
Explorer penceresinde, BasePart, Model veya Attachment üzerine gelin ve ⊕ butonuna tıklayın. Bir bağlam menüsü görüntülenir.
Menüyü kullanarak bir ProximityPrompt ekleyin.

Yakınlık istemlerini özelleştirme
Bir yakınlık istemini, nasıl görüneceğine, ne zaman görünür olacağına ve bir kullanıcının eylemi tetiklemek için ne yapması gerektiğine göre özelleştirebilirsiniz.
Görünüm
Yakınlık istemleri üç şeyi iletmelidir:
- Kullanıcının etkileşimde bulunabileceği nesne.
- Kullanıcının yakınlık istemi ile etkileşimde bulunduğunda tetiklenen eylem.
- Kullanıcının basması veya tutması gereken tuş.
Bunları aşağıdaki özellikler aracılığıyla belirtebilirsiniz:
ObjectText Kullanıcının etkileşimde bulunabileceği nesne için isteğe bağlı bir ad.
ActionText Kullanıcının tetikleyeceği eylem için isteğe bağlı bir ad.
KeyboardKeyCode Kullanıcının eylemi tetiklemek için basması veya tutması gereken klavye tuşu.
GamepadKeyCode Kullanıcının eylemi tetiklemek için basması veya tutması gereken oyun kumandası tuşu.

Görünürlük
Yakınlık isteminin ne zaman görünür olacağını, MaxActivationDistance, RequiresLineOfSight ve Exclusivity özellikleri aracılığıyla kontrol edebilirsiniz.
MaxActivationDistance
MaxActivationDistance özelliği, yakınlık isteminin görünürlüğünü etkinleştiren ProximityPrompt nesnesinin etrafındaki aralığı tanımlamanıza olanak tanır. Bir kullanıcının karakteri bu aralığa girdiğinde, yakınlık istemi görünür hale gelir.

RequiresLineOfSight
RequiresLineOfSight özelliği, kamera ile ProximityPrompt nesnesi arasında açık bir yol olduğunda yakınlık isteminin görünürlüğünü etkinleştirir. Varsayılan olarak, bu özellik true olarak ayarlanmıştır.
Exclusivity
Bir kullanıcının karakteri birden fazla yakınlık isteminin menzilindeyse, her bir yakınlık isteminin görünürlüğü, kameranın hangi yakınlık istemine odaklandığına ve her bir yakınlık isteminin Exclusivity özellik değerine bağlıdır.

Etkileşim
Bir kullanıcının bir yakınlık istemiyle nasıl etkileşimde bulunduğunu, HoldDuration ve ClickablePrompt özellikleri aracılığıyla özelleştirebilirsiniz.
HoldDuration
HoldDuration özelliği, bir kullanıcının bir tuşa basması için gereken süreyi belirler. Bu özellik 0 değerine sahipse, yakınlık isteminin eylemi hemen tetiklenir.
ClickablePrompt
ClickablePrompt özelliği, bir kullanıcının bir yakınlık istemine tıklayarak eylemini tetikleyip tetikleyemeyeceğini belirtir. true olarak ayarlandığında, bir kullanıcı yakınlık istemi ile doğrudan tıklayarak veya belirtilen tuşa basarak etkileşimde bulunabilir. false olarak ayarlandığında, bir kullanıcı yalnızca belirtilen tuşa basarak yakınlık istemi ile etkileşimde bulunabilir.
Script yakınlık istemleri
Yakınlık istemi olaylarına, ya ProximityPrompt nesnesinin kendisinde ya da ProximityPromptService aracılığıyla küresel olarak bağlanabilirsiniz. ProximityPromptService, oyununuzda tekrar eden kod gereksinimini önleyerek tüm yakınlık istemi davranışlarını tek bir yerden yönetmenizi sağlar.
| Olay | Açıklama |
|---|---|
| PromptTriggered | Bir oyuncu bir yakınlık istemi ile etkileşimde bulunduğunda (sıfırdan farklı HoldDuration süresinden sonra) tetiklenir. |
| PromptTriggerEnded | Oyuncu bir yakınlık istemi ile etkileşimi durdurduğunda tetiklenir. |
| PromptButtonHoldBegan | Bir oyuncu sıfırdan farklı HoldDuration değerine sahip bir yakınlık istemi ile etkileşime başladığında tetiklenir. |
| PromptButtonHoldEnded | Bir oyuncu sıfırdan farklı HoldDuration değerine sahip bir yakınlık istemi ile etkileşimi durdurduğunda tetiklenir. |
| PromptShown | Bir yakınlık istemi görünür hale geldiğinde LocalScripts içinde tetiklenir. |
| PromptHidden | Bir istem gizlendiğinde LocalScripts içinde tetiklenir. |
Aşağıdaki kod örneği, ProximityPromptService kullanımı için temel bir çerçeve içerir:
local ProximityPromptService = game:GetService("ProximityPromptService")
-- İstem tetiklendiğinde algıla
local function onPromptTriggered(promptObject, player)
end
-- İstem tutma başladığında algıla
local function onPromptHoldBegan(promptObject, player)
end
-- İstem tutma sona erdiğinde algıla
local function onPromptHoldEnded(promptObject, player)
end
-- İstem olaylarını işleme fonksiyonlarına bağla
ProximityPromptService.PromptTriggered:Connect(onPromptTriggered)
ProximityPromptService.PromptButtonHoldBegan:Connect(onPromptHoldBegan)
ProximityPromptService.PromptButtonHoldEnded:Connect(onPromptHoldEnded)