Kullanıcılar 3B uzayda nesnelere yaklaştıklarında görünen etkileşimli yakınlık uyarıları oluşturabilir ve ardından kullanıcı girişine yönelik eylemleri tetikleyebilirsiniz.
Bu öğretici, Dungeon Delve projesini bir gösteri olarak kullanır. Devam etmeden önce Studio'da açın.

Bir uyarı oluştur
Ekranda görünen talimatlar bir ProximityPrompt , Attachment veya BasePart 'e bağlı bir Model nesnesi tarafından üretilir.
3B görünümdeki veya Gezginden Hapishane Kapısı modelini seçin ( Çalışma Alanı → PromptObjectler → Hapishane Kapısı ).
Ağacını genişlet ve Kapı nesnesini seç.
Bir Attachment üzerine bir uyarı yerleştirmek, etkileşim noktasının meydana geldiği yere daha fazla kontrol verir, doğrudan parçaya/modeline yerleştirilmesine kıyasla.Yeni bir Eklenti ekleyin ve onu PromptAttachment olarak yeniden adlandırın.
Yeni eklemlerin Konumu özelliğini bulun ve bunu -2.25 , -0.5 , - 0.5 olarak ayarlayın.Bu, kapının anahtar deliğinin önüne taşıyacaktır.
PromptAttachment üzerine gelin ve yeni bir ProximityPrompt nesnesi ekleyin.
Hızlı görünüm
İstemler üç temel elemanlardan oluşur, her biri aşağıdaki özellikler tarafından kontrol edilebilir:

- NesneMetni — Etkileşime geçilen nesne için isteğe bağlı bir isim.
- Eylem Metni — Kullanıcıya gösterilen opcional bir eylem adı.
- KlavyeAnahtarKodu — İstemi tetikleyecek klavye anahtarı.
- GamepadKeyCode — Bildirimi tetikleyecek oyun kolu düğmesi.
Hapishane kapısı görünümünü özelleştirmek için, aşağıdaki değişiklikleri yapın:
Özellikler penceresinde, NesneMetni özelliğini bulun ve Kapı yazın.
EylemMetni özelliği için, Kilidi Aç yazın.
Aktivasyon mesafesi
Kullanıcının karakteri uyarı alanının tanımlanan Maksimum Etkinleştirme Mesafesi menzilinde hareket ettiğinde uyarılar görünür.

Varsayılan değer çoğu durumda iyi çalışır, ancak Maksimum Etkinleştirme Mesafesi 'yi 4 olarak değiştirerek kullanıcı etkileşimini kilitleye yaklaştırabilirsiniz.

Süre tut
Tutma Süresi özellik değeri, saniyeler içinde prompt'un eyleminin ne kadar hızlı tetikleneceğini belirler.Bu kapının kilidini açmak için seçilmesi gerektiğinden, Tutma Süresi özelliğini 4 olarak değiştirin.

Bir eylem aksiyon
Hızlı olayları tespit etmenin en iyi yolu ProximityPromptService aracılığıdır - bu, her bir hızlı nesneye bir senaryo eklemeksizin merkezi olarak olayları tespit etmenizi sağlar.
Temel bir çerçeve şöyledir:
local ProximityPromptService = game:GetService("ProximityPromptService")
-- Uyarı tetiklendiğinde algılanmasını sağla
local function onPromptTriggered(promptObject, player)
end
-- İstek tutma başladığında tespit edin
local function onPromptHoldBegan(promptObject, player)
end
-- İstek tutma sonlarını tespit etmeyi tetikleyin
local function onPromptHoldEnded(promptObject, player)
end
-- Hızlı etkinlikleri işleme fonksiyonlarına bağla
ProximityPromptService.PromptTriggered:Connect(onPromptTriggered)
ProximityPromptService.PromptButtonHoldBegan:Connect(onPromptHoldBegan)
ProximityPromptService.PromptButtonHoldEnded:Connect(onPromptHoldEnded)
Olay | Açıklama |
---|---|
PromptTriggered | Bir kullanıcı bir uyarı ile etkileşime girdiğinde ateş eder ( sonra sıfır olmayan bir uyarının süresi HoldDuration ). |
PromptButtonHoldBegan | Bir kullanıcı sıfır olmayan bir uyarı ile etkileşime başladığında ateş eder HoldDuration . |
PromptButtonHoldEnded | Bir kullanıcı sıfır olmayan bir uyarı ile etkileşime son verdiğinde ateş eder HoldDuration |
Dungeon Delve projesinde, bu olaylar PromptEvents kodu tarafından ServerScriptService içinde yönetilir.

Senaryo içinde, yukarıdaki olaylar basitçe Nesne Aksiyonları içindeki fonksiyonları çağırır, ayrıca Sunucu Kript Hizmeti 'de bulunur.
local ProximityPromptService = game:GetService("ProximityPromptService")
local ServerScriptService = game:GetService("ServerScriptService")
local ObjectActions = require(ServerScriptService.ObjectActions)
-- Uyarı tetiklendiğinde algılanmasını sağla
local function onPromptTriggered(promptObject, player)
ObjectActions.promptTriggeredActions(promptObject, player)
end
-- İstek tutma başladığında tespit edin
local function onPromptHoldBegan(promptObject, player)
ObjectActions.promptHoldBeganActions(promptObject, player)
end
-- İstek tutma sonlarını tespit etmeyi tetikleyin
local function onPromptHoldEnded(promptObject, player)
ObjectActions.promptHoldEndedActions(promptObject, player)
end
-- Hızlı etkinlikleri işleme fonksiyonlarına bağla
ProximityPromptService.PromptTriggered:Connect(onPromptTriggered)
ProximityPromptService.PromptButtonHoldBegan:Connect(onPromptHoldBegan)
ProximityPromptService.PromptButtonHoldEnded:Connect(onPromptHoldEnded)
Yakınlık uyarıları, oyun içi nesne etkileşimleri için uygun ve özelleştirilebilir bir çözümdür.Hızlı davranışı kontrol etmek için daha fazla yol için ProximityPrompt ve ProximityPromptService referans sayfalarını kontrol edin ve yaratıcı ilham için Dungeon Delve 'de diğer etkileşimli nesneleri keşfedin.