ProximityPrompt nesneleri, kullanıcı etkileşimini teşvik ederek, kapılar, ışık anahtarları ve düğmelere yaklaştıklarında bir eyleme tetiklemelerini sağlar. Bu nesneyi kullanarak, şunları yapabilirsiniz:
- Kullanıcının deneyimde neyle etkileşime geçebileceğini göster.
- Bir kullunun nesneye yapabileceği eylemi gösterin, sonra bir kulluğa basmak veya bir anahtarbasmak gibi kullanıcı girişi aracılığıyla eylemi başlatın.
- Tüm giriş türleri için doğru girişi gösterin, böyle bir klavye, oyun konsolu ve dokunmatik ekran tuşları.
Yakınlık Promptları Oluşturulması
Bir kullanıcının etkileşim kurduğu parçaya, modeline veya bağlantısına yakınlık promptları ebeveyn olmalısınız. Bir yakınlık prompt'ını bir BasePart , Model veya Attachment nesneye eklemek için:
Menüden, bir YakınlıkPrompt ekleyin.
Yakınlık Promptlarını Özelleştirme
Yakınlık isteğini görünümü nasıl istediğinize, görünümü görünür hale getirmek istediğinizde ve kullanıcınızın eylemi nasıl tetikleyeceğinize bağlı olarak özelleştirebilirsiniz.
Görünüm
Yakınlık kutuları üç şeyi iletişim kurmalıdır:
- Bir kullanıcının etkileşimine izin verilen objekt .
- Yakınlık talimatıyla etkileşime geçtiğinde tetiklenen eylem .
- Bir kullanıcının basması veya tutması gereken anahtar .
Bunları aşağıdaki özellikler aracılığıyla belirtmeniz mümkündür:
ObjectText Bir kullanıcının etkileşim kurabileceği objeye bir zorunlu isim.
Kullanıcının başlatacağı eylem için bir isim öğesi. | Kullanıcının başlatacağı eylem için bir isim öğesi. | Kullanıcının başlatacağı eylem için bir isim öğesi. | Kullanıcının başlatacağı eylem için bir isim öğesi. | Kullanıcının başlatacağı eylem için bir isim öğesi. | Kullanıcının başlatacağı eylem için bir isim öğesi. | Kullanıcının başlatacağ
KeyboardKeyCode Klavye kullanıcısının eylemi başlatmak için basması gereken veya tutması gereken klavye düğmesi.
GamepadKeyCode Oyun konsolu tuşu bir kullanıcının aksiyonbaşlatmak için basması veya tutması gereken bir tuştur.
Görünürlük
Yakınlık mesajının görünmesiyle ilgili kontrol, yakınlık mesajının MaxActivationDistance , RequiresLineOfSight ve Exclusivity özellikleri aracılığıyla görü
Maksimum Aktivasyon Mesafesi
Class.ProximityPrompt.MaxActivationDistance|MaxActivationDistance özelliği, yakınlık mesajının görünürlüğünü etkinleştiren ProximityPrompt nesnelerinin etrafındaki menzili tanımlarını sağlar. Bir kullanıcının karakteri bu menzili girince, yakınlık mesajı görünür hale gelir.
GerektirirGörüş
The RequiresLineOfSight özelliği, yakınlık mesajının görünürlüğünü artırır, böylece kameradan Class.ProximityPrompt nesnnesine kesin bir yol var.Varsayılan olarak, bu özellik kapalı olarak ayarlandı.
Özellikler
Bir kullanıcının karakteri birden fazla yakınlık mesajının menzilindeyse, her yakınlık mesajının görünürlüğü, kameranın nereye işaret ettiğine ve her yakınlık mesajının Exclusivity özelliği değerine bağlıdır.
Etkileşim
Bir kullanıcının yakınlık mesajıyla etkileşim kurmasını özelleştirebilirsiniz, bu da onun HoldDuration ve ClickablePrompt özellikleri aracılığıyla.
Süre Tut
Yakınlık mesajının etkinleştirilmesinden önce bir kullanıcının bir tuşa basması gereken saniye sayısını belirleyen HoldDuration özelliği. Bu özellik 0 değerindeyse, yakınlık mesajının etkinleştirilmesi derhal yapılır.
Tıklanabilir İşaret
The ClickablePrompt özelliği, bir kullanıcının yakınlık mesajını etkinleştirmesi için yakınlık mesajına tıklayıp etkileşim kurabilir. Setlenmiş doğru olarak, bir kull
Yakınlık Promptlarını Kullanma
Yakınlık isteği olaylarına Class.ProximityPrompt nesnelerine veya Class.ProximityPromptService ile global olarak bağlanabilir. The ProximityPromptService ile, tüm yakınlık isteği davranışını tek bir konumdan yönetebilirsiniz, bu da deneyiminizdeki herhangi bir gereksiz kodu önler.
Etkinlik | Açıklama |
---|---|
PromptTriggered | Yakınlık mesajına bir oyuncu etkileşim kurduğunda ateşlenir (HoldDuration için süre). |
PromptTriggerEnded | Yakınlık talimatıyla etkileşim kurulduğunda tetiklenir. |
PromptButtonHoldBegan | Yakınlık mesajı ile etkileşime geçen bir oyuncunun, HoldDuration değerinde olmayan bir iletişim başlatmasına izin verir. |
PromptButtonHoldEnded | Yakınlık mesajıyla etkileşimi sonlandırdığında oyuncu yakınlık mesajıyla etkileşime geçmeyi bırakır. Fire when a player stops interacting with a proximity prompt with a non-zero HoldDuration value. |
PromptShown | Yakınlık isteği görünür hale geldiğinde LocalScripts tetikleri görür. |
PromptHidden | Bir istemci gizlendiğinde LocalScripts içindeki tetikleri tetikler. |
Aşağıdaki kod örneği, ProximityPromptService kullanımı için temel bir çerçeve içerir:
local ProximityPromptService = game:GetService("ProximityPromptService")
-- İndirmeyi başlatırken tetiklenen zamanı algıla
local function onPromptTriggered(promptObject, player)
end
-- İndirmeyi başlatırken beklenen süreyi tespit et
local function onPromptHoldBegan(promptObject, player)
end
-- İndirmeyi durdurma eylemi bitince algılayın
local function onPromptHoldEnded(promptObject, player)
end
-- İşlevleri işleyen alanlara bağlantı olayları
ProximityPromptService.PromptTriggered:Connect(onPromptTriggered)
ProximityPromptService.PromptButtonHoldBegan:Connect(onPromptHoldBegan)
ProximityPromptService.PromptButtonHoldEnded:Connect(onPromptHoldEnded)