Fare ve klavye girişi

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

Roblox oturumlarının büyük bir yüzdesi bir fare ve klavye ile donanımlı cihazlarda oynanır, bu nedenle geniş bir izleyici için deneyim tasarlarken bu girişleri doğru bir şekilde desteklemek önemlidir.Fare ve klavye girişleriyle rahat olduğunuzda, çok platformda deneyiminizi uyumlu hale getirmek için mobil ve oyun kolu girişlerini ayarlayın.

Konfor açısından, Roblox en yaygın fare ve klavye girişlerini varsayılan bağlantılar olarak ayarlar, ki bunlar rezerve edilmiş bağlantılar hariç, üzerine yazabilirsiniz.

Genel fare girişi

Tüm cihaz girişleri gibi, fare girişlerini UserInputService kullanarak yakalayabilirsiniz.Bu hizmet, bir kez çok sayıda cihaz için giriş değişikliklerini ve cihaz giriş durumlarını yakalamak için ölçeklenebilir bir yol sağlar.Roblox ayrıca miras kalan fare giriş tespitini PlayerMouse ve ClickDetectors ile destekler.

Ayrıca, ContextActionService 'yi kullanarak bir giriş üzerindeki çoklu eylemleri yönetebilirsiniz, örneğin bir kaya yakınında bir araç kullanarak veya bir inşa etmeiçinde bir kapı açarak konteksine bağlı olarak.Kontekst spesifik giriş eylemleri ayarlamak için bilgi için Kontekst Bağımlı Girişler bakın.

Aşağıdaki LocalScript, yerleştirildiğinde StarterPlayerScripts , fare tıklamalarını yakalar ve fare konumunu Çıktı penceresine yazdırır:

YerelScript - Çıktı Fare Tıklaması ve Konum

local UserInputService = game:GetService("UserInputService")
local function onInputEnded(inputObject, processedEvent)
-- Önce "işlenenEtkinlik"in doğru olup olmadığını kontrol edin
-- Bu, başka bir senaryonun girişi zaten işlemiş olduğunu gösterir, bu yüzden bu senaryo göz ardı edilir
if processedEvent then return end
-- Sonra, girişin bir fare olayı olduğundan emin olun
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ş vuruşunun veya diğer girişlerin ne zaman sona erdiğini izlemek için UserInputService.InputEnded etkinliğini kullanın.fare etkinliklerine benzer şekilde, bu etkinlik yalnızca bir LocalScript.

Aşağıdaki , yerleştirildiğinde , basılan bir tuşun u çıktı penceresine yazdırır:


local UserInputService = game:GetService("UserInputService")
local function onInputEnded(inputObject, processedEvent)
-- Önce "işlenenEtkinlik"in doğru olup olmadığını kontrol edin
-- Bu, başka bir senaryonun girişi zaten işlemiş olduğunu gösterir, bu yüzden bu senaryo göz ardı edilir.
if processedEvent then return end
-- Sonra, 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)

UI girişi

Fare ve klavye girişi, TextButtons ve ImageButtons gibi etkileşimli UI öğeleri ile otomatik olarak çalışır, ayrıca bir formdaki alan gibi metin girişini yakalayan TextBoxes .

Buton ve metin giriş nesneleri oluşturma hakkında daha fazla bilgi için, Düğmeler ve Metin Girişi bakın.

Karakter hareket modları

Fare ve klavye hareket kontrollerini Roblox deneyimleri için değiştirerek StarterPlayer.DevComputerMovementMode değerlerini takip edilenbirine ayarlayabilirsiniz:

SeçenekAçıklama
Kullanıcı Seçimi Kullanıcıların deneyim menüsünden istedikleri kontrol düzenini seçmelerine izin verir. Bu seçenek varsayılan olarak etkinleştirilir.
Klavye Fare Kullanıcılar hareket etmek ve atlamak için basabilir ve zıplama.Bu, KullanıcıSeçimi ayarı için klavye ve mouse kullanıcılarının varsayılan ayarıdır.
Hareket etmek için tıklayın Kullanıcılar sadece hedef bir konuma sağ tıklayarak deneyime geçebilir.
Yazılabilir Tüm varsayılan kontrolleri devre dışı bırakır ve kendi kontrollerinizi bağlamanıza izin verir.

Fare ikonları

Deneyiminizde bir kullanıcının fare ikonunun görünümünü ve davranışını özelleştirerek, tüm UI öğeleri arasında tutarlı bir stil oluşturabilirsiniz.Buna, bir düğme üzerinde gezinmek gibi belirli durumlarda kullanıcının fare ikonunu geçici olarak değiştirmek dahildir.

simgedeğiştir

Kullanıcının fare ikonunu bir LocalScript 'de özelleştirilmiş bir Roblox varlık kimliğine ayarlayarak değiştirebilirsiniz: MouseIcon özelliklerini UserInputService 'ye özel bir Roblox varlık kimliğine ayarlayarak.Örneğin, aşağıdaki LocalScript değişiklikleri kullanıcının varsayılan fare simgesini ortadaki mavi nokta ile bir daireye dönüştürür:


local UserInputService = game:GetService("UserInputService")
UserInputService.MouseIcon = "rbxassetid://3400146391"

Simgeyi simge

Kullanıcının fare ikonunu gizleyebilirsiniz, bunu yapmak için UserInputService.MouseIconEnabled 'yi false 'ye ayarlayın bir LocalScript .Örneğin, aşağıdaki kod, fare simgesini her iki saniye görünürden görünmez ve geri değiştirir:


local UserInputService = game:GetService("UserInputService")
while true do
task.wait(2)
UserInputService.MouseIconEnabled = false
task.wait(2)
UserInputService.MouseIconEnabled = true
end

Simgeyi simge

Fare simgesinin konumunu ekrana UserInputService.MouseBehavior ile kilitleyebilir ve ardından Enum.MouseBehavior değeri ile yeniden kilidini açabilirsiniz: LockCurrentPosition veya LockCenter , sonra tekrar Default değeriyle kilidini açın.

Bir kullanıcının fare ikonu bir konumda kilitlendiyse, UserInputService.InputChanged hala kullanıcı fareyi hareket ettirdiğinde ateş eder, fare hareket ettiği mesafeyi geçer.Örneğin, aşağıdaki kod örneği bir saniye sonra kullanıcının farenin simgesini kilitler, ardından Studio kullanıcı fareni hareket ettirdiğinde farenin deltasını basar:


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)

Roblox varsayılan bağlantıları

Roblox, tüm deneyimler için varsayılan tuş bağlantıları sağlar.Bunlar, hareket, kamera kontrolü ve temel çevre etkileşimi için kullanılan en yaygın girişlerdir.Kaydedilmiş bağları dışladıktan sonra, ContextActionService çoklu bağların tek bir eyleme öncelik vermesini sağlayan çapraz platform bağlar oluşturmak için kullanabilirsiniz, bağımsız girişlere bağlı olarak açıklanmıştır .

Enum.CoreGuiType özellikler, örneğin Sırt çantası veya Sohbet gibi, ekstra varsayılan girişlerin bir listesine sahiptir.Esc (Roblox menüsü) veya F9 (Geliştirici Konsolu) gibi rezerve edilmiş girişleri üzerwrite edemezsiniz.

Bu bağlantılar Roblox'un varsayımlarıdır, ancak özel senaryolarla onları geçersiz kılabilirsiniz.Çoğu Roblox kullanıcısı bu denetimleraşina, bu yüzden sadece belirli durumlarda onları geçersiz kılmalısınız.

GirişlerEylem
Wİleri git
SGeri geri
ASola hareket et
DSağa taşı
SpacebarZıplama
Kamerayı sağa veya sola döndür
Sağ Fare Tuşu Basıldığında, fareyi sürüklemek kamera görüşini etrafında hareket ettirir
Fare Kaydırma Tekerleği IOKamerayı büyüt veya küçült
ShiftEnableMouseLockOption etkinleştirildiğinde fare kilidi geçişi etkinleştirin