Yakınlık Girişleri

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

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:

  1. In the Explorer window, hover over the BasePart , Model , or 1> Class.Arrow1> and click the ⊕ button. A contextual menu displays.

  2. Menüden, bir YakınlıkPrompt ekleyin.

    Explorer hierarchy showing a ProximityPrompt parented to an Attachment

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.

    Diagram indicating basic elements of a ProximityPrompt

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.

Diagram indicating how a character's distance from a ProximityPrompt object affects whether the prompt appears on screen

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.

ProximityPrompt objects set to exclusivity of OnePerButton

Her giriş anahtar kodu için yalnızca bir yakınlık alanı promosu görünür. Eğer çok sayıda yakınlık alanı promosu kullanırsa, hepsi görünür. Ancak, çok sayıda yakınlık alanı promosu aynı kodu kullanırsa, sadece bir yakınlık alanı promosu görünür. Bu, kamera'nın görüntü yönüne bağlı ol

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.

EtkinlikAçıklama
PromptTriggeredYakınlık mesajına bir oyuncu etkileşim kurduğunda ateşlenir (HoldDuration için süre).
PromptTriggerEndedYakınlık talimatıyla etkileşim kurulduğunda tetiklenir.
PromptButtonHoldBeganYakınlık mesajı ile etkileşime geçen bir oyuncunun, HoldDuration değerinde olmayan bir iletişim başlatmasına izin verir.
PromptButtonHoldEndedYakı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.
PromptShownYakınlık isteği görünür hale geldiğinde LocalScripts tetikleri görür.
PromptHiddenBir 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)