ProximityPrompt nesneleri kullanıcı etkileşimini teşvik eder ve kullanıcıların kapılar, ışık anahtarları ve butonlar gibi deneyim içi nesnelere yaklaşırken bir eylemi tetiklemesine olanak tanır. Bu nesneyi kullanarak şunları yapabilirsiniz:
- Kullanıcının deneyimde etkileşimde bulunabileceği nesneleri belirtin.
- Kullanıcının nesne üzerinde alabileceği eylemi gösterin, ardından kullanıcı girişi ile eylemi tetikleyin, örneğin bir tuşa basma veya tutma.
- Tüm giriş türleri için, klavye, oyun kumandası ve dokunmatik ekran tuşları gibi doğru girişi gösterin.
Yakınlık istemleri oluşturma
Yakınlık istemlerini, bir kullanıcının etkileşimde bulunmasını istediğiniz parça, model veya ek parçaya yerleştirmeniz gerekir. Bir BasePart, Model veya Attachment nesnesine bir 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ülenecektir.
Menüden 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 tetiklemesi için ne yapması gerektiğine göre özelleştirebilirsiniz.
Görünüm
Yakınlık istemleri üç şeyi iletmelidir:
- Bir kullanıcının etkileşimde bulunabileceği nesne.
- Yakınlık istemine 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 olduğunu, 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 alana girdiğinde, yakınlık istemi görünür hale gelir.

RequiresLineOfSight
RequiresLineOfSight özelliği, kameradan ProximityPrompt nesnesine net 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üğü, hangi yakınlık istemine doğru kameranın odaklandığına ve her bir yakınlık isteminin Exclusivity özellik değerine bağlıdır.

Etkileşim
Kullanıcının bir yakınlık istemi ile 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 ne kadar süreye sahip olduğunu belirler; bu süre dolduğunda yakınlık isteminin eylemi tetiklenir. Eğer bu özelliğin değeri 0 ise, 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.
Yakınlık istemlerini betimleme
Yakınlık istemi olaylarına, ProximityPrompt nesnesi üzerinde veya ProximityPromptService aracılığıyla küresel olarak bağlanabilirsiniz. ProximityPromptService, tüm yakınlık istemi davranışını tek bir yerden yönetmenizi sağlar; bu sayede deneyiminizde tekrar eden kodlar oluşturmaktan kaçınmış olursunuz.
| Etkinlik | Açıklama |
|---|---|
| PromptTriggered | Bir oyuncu bir yakınlık istemi ile etkileşimde bulunduğunda (sıfırdan farklı HoldDuration değeri olan bir istem için süre dolduktan sonra) tetiklenir. |
| PromptTriggerEnded | Oyuncunun bir yakınlık istemi ile etkileşimde bulunmayı durdurduğunda tetiklenir. |
| PromptButtonHoldBegan | Sıfırdan farklı HoldDuration değerine sahip bir yakınlık istemi ile etkileşime geçmeye başlandığında tetiklenir. |
| PromptButtonHoldEnded | Sıfırdan farklı HoldDuration değerine sahip bir yakınlık istemi ile etkileşimde bulunmayı durdurduğunda tetiklenir. |
| PromptShown | Bir yakınlık isteminin görünür hale getirildiğinde LocalScripts içerisinde tetiklenir. |
| PromptHidden | Bir istem gizlendiğinde LocalScripts içerisinde tetiklenir. |
Aşağıdaki kod örneği, ProximityPromptService kullanımına dair 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 etkinliklerini işleme fonksiyonlarına bağla
ProximityPromptService.PromptTriggered:Connect(onPromptTriggered)
ProximityPromptService.PromptButtonHoldBegan:Connect(onPromptHoldBegan)
ProximityPromptService.PromptButtonHoldEnded:Connect(onPromptHoldEnded)