Roblox'un büyük bir kısmı oyunları oynarken bir klavye veya bir fare ile oynanır, bu yüzden geniş bir izleyici için bir deneyim tasarlarken bu girdileri doğru desteklemek önemlidir. Mause ve klavye girdilerini ayarlarken mobil ve oyun konsol girdilerini ayarlarken oyunu birden fazla platformda uyarlayarak uyarlayın.
Roblox, en yaygın fare ve klavye girişlerini Varsayılan bağlantılar olarak ayarlar, bu, yedek bağlantılar dışında, yeniden yazabilirsiniz.
Genel Farenteri
Tüm cihaz girişleri gibi, fare girişlerini UserInputService kullanarak yakalayabilirsiniz. Bu hizmet, birden fazla cihazda aynı anda giriş değişikliklerini ve cihaz girişlerini destekler. Roblox ayrıca, PlayerMouse ve ClickDetectors ile geleneksel fare g
Ayrıca, ContextActionService kullanarak, bir yüksek kaynağın yakınında bir aşkını kullanarak veya bir inşa etmeiçindeki kapıyı açarak gibi, bir yüksek kaynağın yüksek kaynağını işlemek için birkaç eylem işlemek için tek bir yüksek kaynağın yüksek kaynağını yüksek kaynağını
Class.LocalScript, StarterPlayerScripts içine yerleştirildiğinde, fare tıklamalarını yakalar ve fareyi Çıkış penceresine yazdırır:
Yerel Kod - Çıkış Mouse Click ve Position
local UserInputService = game:GetService("UserInputService")
local function onInputEnded(inputObject, processedEvent)
-- Önce "işlenmiş etkinlik" olup olmadığını kontrol edin
-- Bu, başka bir senaryonun zaten girdiyi işlemiş olmasını gösterir, bu yüzden bu giriş görmezden gelir
if processedEvent then return end
-- Ardından, girişin bir mouse etkinliği olduğunu kontrol edin
if inputObject.UserInputType == Enum.UserInputType.MouseButton1 then
print("Left Mouse button was pressed:", inputObject.Position)
elseif inputObject.UserInputType == Enum.UserInputType.MouseButton2 then
print("Right Mouse button was pressed:", inputObject.Position)
end
end
UserInputService.InputEnded:Connect(onInputEnded)
Genel Klavye Girişi
Klavye etkinliklerine erişmek için, herhangi bir tuşa basılı tutulduğunda veya başka bir girişimin bitişinde her zaman izlemek için UserInputService.InputEnded etkinliğini kullanın. Klavye etkinlikleriyle ilgili olarak, bu etkinlik sadece bir Class.LocalScript içinde çalışır.
Aşağıdaki LocalScript, StarterPlayerScripts içine yerleştirildiğinde, basan Enum.KeyCode bir basılı tuşun 2>Çıkış2> penceresine yazılır:
local UserInputService = game:GetService("UserInputService")
local function onInputEnded(inputObject, processedEvent)
-- Önce "işlenmiş etkinlik" olup olmadığını kontrol edin
-- Bu, başka bir skriptin zaten girdiyi işlemesi olduğunu gösterir, bu yüzden bu giriş görmezden gelir.
if processedEvent then return end
-- Ardından, girişin bir klavye etkinliği olduğundan emin olun
if inputObject.UserInputType == Enum.UserInputType.Keyboard then
print("A key was released: " .. inputObject.KeyCode.Name)
end
end
UserInputService.InputEnded:Connect(onInputEnded)
Kullanıcı Arayüzü Girişi
Fareniz ve klavye girişi, TextButtons ve ImageButtons gibi etkileşimli UI elemanları ile otomatik olarak çalışır, ayrıca TextBoxes gibi alan girişi gibi bir alan girişi gibi girişi gibi girişi gibi girişi gibi girişi gibi girişi gibi giriş
Düğme ve metin giriş nesneleri oluşturma konusunda daha fazla bilgi için Butonlar ve Metin Girişi bakın.
Karakter Hareket Modları
Roblox deneyimleri için fare ve klavye hareket kontrolleri şemalarını değiştirerek takip edilendeğerlerden biriyle yapabilirsiniz:
Seçenek | Açıklama |
---|---|
Kullanıcı Seçimi | Kullanıcılar, deneyim menüsünden istedikleri kontrol sistemini seçmelerine izin verir. Bu seçenek varsayılır olarak etkinleştirilmiştir. |
Klavye Mouse'u | Kullanıcılar hareket etmek için WASD tuşlarına basabilirler. Bu, kullanıcı seçimi ayarı için klavye veya fare kullanıcıları için varsayılan ayardır. |
Hareket ettirmek için tıkla | Kullanıcılar sadece bir hedef bölgesine sağ tıklayarak deneyimde hareket edebilir. |
Yazılabilir | Tüm varsayılan kontrolleri devre dışı bırakır ve sizin kendi kontrollerinizi bağlaymanızı sağlar. |
Faren Simgeleri
Kullanıcının farenin görünümü ve davranışını deneyiminizdeki bir kullanıcının fare simgesini özelleştirebilirsiniz, böylece tüm UI öğelerinizde bir tutarlı stil oluşturabilirsiniz. Bu, fareyi bir düğme üzerinde gezinme gibi belirli durumlarda değiştirmeyi içerir.
İkonu Değiştirme
Kullanıcının mouse icon'ını bir LocalScript ile değiştirebilirsiniz, böylece MouseIcon 'deki UserInputService ile kullanıcının varsayılan mouse icon'ını bir kare ile değiştirebilirsiniz. Ör
local UserInputService = game:GetService("UserInputService")UserInputService.MouseIcon = "rbxassetid://3400146391"
İkonu Gizleme
Kullanıcının mouse icon'ını gizlemek için UserInputService.MouseIconEnabled 'yı false ile LocalScript ile değiştirebilirsiniz. Örneğin, aşağıdaki kod kullanıcının mouse icon'ını görünürden görünmez'e ve her iki saniyede bir değiştirir:
local UserInputService = game:GetService("UserInputService")while true dotask.wait(2)UserInputService.MouseIconEnabled = falsetask.wait(2)UserInputService.MouseIconEnabled = trueend
Simgeyi Kilitleme
Mouse simge'ınızı ekrana kilitlemek için UserInputService.MouseBehavior ile bir Enum.MouseBehavior veya LockCurrentPosition değeri kullanarak ekranı killeyin veya 1> Class.MouseBehavior|Default1> ile tekrar killeyin, sonra
Bir kullanıcının fare simgesi bir pozisyonda kilitlenmişse, UserInputService.InputChanged hala fırlar, kullanıcı mouse'ı hareket ettirirken, mesafeyi hareket ettirdiğinde. Örneğin, aşağıdaki kod örneği, kullanıcının fare simgesini bir saniye sonra kilitler ve Studio, kullanıcıların farelerini hareket ettiklerindeki mesaj
local UserInputService = game:GetService("UserInputService")
task.wait(5)
UserInputService.MouseBehavior = Enum.MouseBehavior.LockCurrentPosition
UserInputService.InputChanged:Connect(function(inputObject)
if inputObject.UserInputType == Enum.UserInputType.MouseMovement then
print("Mouse delta is (" .. tostring(inputObject.Delta.X) .. ", " .. tostring(inputObject.Delta.Y) .. ")")
end
end)
RobloxVarsayılan Bağlantılar
Roblox, tüm deneyimler için varsayılan anahtar bağlantıları sağlar. Bu, hareket, kamerayla kontrol ve temel çevre etkileşimleri için kullanılan en yaygın girdilerdir. Önemli birincil bağlantıyı oluşturmak için ContextActionService kullanabilirsiniz, açıklanan Konteynı Bağıml
Enum.CoreGuiType özellikleri, örneğin Sırt Çantası veya Chat gibi, bir dizi ek girdi gerektirir. 0>Esc0> (Roblox menüsü) veya Enum.CoreGuiType3> (Geliştirici Konsolu) gibi yerleşik girdileri yazılım dışı bırakamazsı
Bu bağlantılar varsayılana Roblox'taki eşyalardır, ancak bunları özelleştirilmiş senaryolarla üstelendiğinizde Roblox'un bunları görmezden gelmez. Çoğu Roblox kullanıcısı bu denetimlertanıdığından, sadece belirli durumlarda onları geçersiz hale getirmelisiniz.
Girişler | Eylem |
---|---|
W↑ | İleri git |
S↓ | Geri geri |
bir | Soluna git |
D | Sağa git |
Boşluk Çubuğu | Zıplama |
Kamerayı sol veya sağ tarafından döndür | |
Sağ Fare Tuşu | Basıldığında, mouse'ın hareketini kameranın görüntüsü etkiler |
Farenin Yatışı IO | Kamerayı içeri veya dışarı çekin |
Shift | Class.StarterPlayer.EnableMouseLockOption|EnableMouseLockOption'ın etkinleştirildiğini veya etkinleştirilmediğini Mouse Lock'unu aç/kapa |