VRService
*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.
VRService Roblox ve Virtual Reality (VR) arasındaki etkileşimleri ele alır. Yöntemleri, özellikleri ve etkinlikleri, kullanıcıların Roblox'u VR cihazlarında deneyimlemek isteyenler için en iyi deneyimi sağlamanıza yardımcı olur.
VR cihazları için bir deneyim yayınlayan için daha fazla bilgi için VR Guidelines bakın.
Kod Örnekleri
local VRService = game:GetService("VRService")
local part = workspace.Part
local handOffset = VRService:GetUserCFrame(Enum.UserCFrame.LeftHand)
-- Account for headscale
handOffset = handOffset.Rotation + handOffset.Position * workspace.CurrentCamera.HeadScale
part.CFrame = workspace.CurrentCamera.CFrame * handOffset
Özet
Özellikler
Oyuncuyu avatarıyla birleştirmek için VR'deki eşyaları otomatik olarak ayarlar.
Doğruysa, bir VR oyuncusu kendi kontrolörlerini ve kulaklıklarını kullanarak ellerini ve kafasını animasyon yapabilir.
Doğruysa, bir VR oyuncusunun görüşü, kafası bir nesne ile çarpıştığında siyah olacaktır.
VR'deki girişler için sorumluluğunu açıklar Enum.UserCFrame .
Kullanıcının bir sanal gerçeklik cihazı kullanıyor olup olmadığını açıklar.
Yöntemler
Belirli bir VRTouchpad'in modunu gösteren VRTouchpadMode'u iade eder.
Belirli bir gerçeklik cihazının pozisyonunu ve yönünü gerçek dünya alanındaki bir noktadan bir ofset olarak tanımlayan bir CFrame döndürür.
Belirlenen Enum.UserCFrame dinlenebilir olsa geri döndürür.
Datatype.CFrame ile kullanıcının kullandığı VR kulaklığının mevcut konumuna yeniden merkezlenir.
Visualizer parabolasının kaynağı olarak belirlenen CFrame yolunu kullanarak istekleri yönlendirir.
Belirlenen Enum.VRTouchpad ile belirlenen Enum.VRTouchpadMode arasındaki modu ayarlar.
Etkinlikler
Navigasyon istenildiğinde VRService 'den ateş edildi.
Bir Enum.VRTouchpadMode``Enum.VRTouchpad ın değiştirilmesi durumunda ateş eder.
Bir Enum.UserCFrame değiştirildiğinde ateş eder.
Bir Enum.UserCFrame kullanılabilir veya kullanılamaz hale getirildiğinde ateşlenir.
Özellikler
AutomaticScaling
Class.Camera.HeadScale ile ayarlandığında, Camera.HeadScale skalörünü ayarlar, böylece dünyanın büyüklüğü avatarın perspektifinden görülür. Küçük bir avatarı olan bir oyuncu, etrafındaki nesneleri büyük avatarın görüntüsünden daha büyük olarak algılayacaktır.
AvatarGestures
Açık olarak ayarlandığında, bir VR oyuncusu kendi kontrolörleri ve kulaklıklarını kullanarak ellerini ve kafalarını animasyon yapabilir.
Bu özellik, sunucuda ayarlanmalıdır.
ControllerModels
FadeOutViewOnCollision
Doğruysa, bir VR oyuncusunun görüşü, kafası bir nesne ile çarpıştığında siyah olarak solgunur. Bu özellik, oyuncuların VR'de duvarlar aracılığıyla görüşebileceğini önler.Varsayılan değer doğrudur.
GuiInputUserCFrame
Bu özellik, VR'deki giriş için sorumluluğunu açıklar. durum, bir VR kulaklığı sorumluysa, bu özelliğin değeri Enum.UserCFrame olacaktır.
Roblox'un VR'da herhangi bir VR cihazını algıladığını test etmek için, bu VR'da giriş için sorumlu olacak VREnabled özelliğini kontrol edebilirsiniz.
Kod Örnekleri
local VRService = game:GetService("VRService")
if VRService.VREnabled then
print(VRService.GuiInputUserCFrame.Name)
else
print("No VR device detected!")
end
LaserPointer
ThirdPersonFollowCamEnabled
VREnabled
Bu özellik, kullanıcının bir sanal gerçeklik (VR) cihazını kullandığını mı yoksa kullanmadığını mı açıklar?
VR cihazı etkinleştirilmişse, onun konumunu ve hareketini Class.UserInputService:GetUserCFrame() yöntemleri aracılığıyla etkileşim kurabilirsiniz. Ayrıca, VR cihazı hareketini kullanarak Class.UserInputService.UserCFrameChanged etkinliğine de reaktebilirsiniz.
local UserInputService = game:GetService("UserInputService")local isUsingVR = UserInputService.VREnabledif isUsingVR thenprint("User is using a VR headset!")elseprint("User is not using a VR headset!")end
Bu özellik sadece bir LocalScript içinde kullanılabilir.
Ayrıca bakın
Kod Örnekleri
local VRService = game:GetService("VRService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.CharacterAdded:Wait()
local head = character:WaitForChild("Head")
local function TrackHead(inputType, value)
if inputType == Enum.UserCFrame.Head then
head.CFrame = value
end
end
if VRService.VREnabled then
-- Set the initial CFrame
head.CFrame = VRService:GetUserCFrame(Enum.UserCFrame.Head)
-- Track VR headset movement and mirror for character's head
VRService.UserCFrameChanged:Connect(TrackHead)
end
Yöntemler
GetTouchpadMode
Bu yöntem, Enum.VRTouchpadMode ile belirlenen modu gösteren Enum.VRTouchpad ın modunu içerir. Geri dönen mod, kullanıcının touchpad'ı ile nasıl etkileşime geçtiğini gösterir.
Bu ayrıca birkaç UserInputService VR yöntemi ve etkinliğiyle birlikte kullanılabilir.
Bu yöntem sadece bir LocalScript içinde çalışacaktır.
Parametreler
Belirlenen VRTouchpad .
Dönüşler
Belirlenen VRTouchpad modu.
Kod Örnekleri
local VRService = game:GetService("VRService")
VRService:GetTouchpadMode(Enum.VRTouchpad.Left)
GetUserCFrame
Bu yöntem, bir belirli sanal gerçeklik (VR) cihazının konumunu ve yönünü bir noktadan geri ofset olarak tanımlayan bir CFrame döndürür. Bu yöntem, VR uyumluluğunu bir oyuna uygularken kullanılmalıdır, böylece bağlantılı bir VR cihazının hareketini takip edebilirsiniz.
Yöntemi kullanarak, geliştiriciler kullanıcının oyun içi karakterini bağlantılı bir VR cihazının yerine yeniden yerleştirme gibi özellikleri uygulayabilirler. Bunu kullanmak için kullanıcının oyun içi karakterini CFrame değerine ulaşt
VRService ayrıca, bağlantılı VR cihazının UserCFrameChanged değiştirildiğinde otomatik olarak çalışan bir etkinliği de sağlar, bu da CFrame içinde kullanılıyorsa.
Bu yöntem sadece bir LocalScript içinde çalışacaktır.
Parametreler
Belirlenen UserCFrame .
Dönüşler
Kod Örnekleri
local Workspace = game:GetService("Workspace")
local VRService = game:GetService("VRService")
local camera = Workspace.CurrentCamera
local part = script.Parent.Part
local handOffset = VRService:GetUserCFrame(Enum.UserCFrame.LeftHand)
-- Account for headscale
handOffset = handOffset.Rotation + handOffset.Position * camera.HeadScale
part.CFrame = camera.CFrame * handOffset
GetUserCFrameEnabled
Bu yöntem, belirlenen Enum.UserCFrame sanal gerçekliği cihazı (VR) dinlenebilir olup olmadığını doğrulamak için geri döndürür. Kullanıcının oyununa bağlanmış özel bir VR cihazı, örneğin Enum.UserCFrame.Head, ile bağlanır.
Bu ayrıca birkaç UserInputService VR yöntemi ve etkinliğiyle birlikte kullanılabilir.
Bu yöntem sadece bir LocalScript içinde çalışacaktır.
Parametreler
VR cihazının belirlenen türü.
Dönüşler
Belirli VR cihazının etkinleştirilip etkinleştirilmediğini gösteren bir booleoid ( true ) veya devre dışı bırakıldığını gösteren bir booleoid ( false ).
Kod Örnekleri
local VRService = game:GetService("VRService")
local isEnabled = VRService:GetUserCFrameEnabled(Enum.UserCFrame.Head)
if isEnabled then
print("VR device is enabled!")
else
print("VR device is disabled!")
end
RecenterUserHeadCFrame
Bu yöntem, kullanıcının kafasının üzerindeki CFrame kullanıcının kafasının VR kulaklığının mevcut konumuna yeniden merkezleştirir. Bu, kullanıcının oyun içi kafasının VR kulaklıkkonumuna göre yerleştirilmesini sağlayabilir.
Bu, UserInputService:RecenterUserHeadCFrame() ile aynı davranır.
Bu yöntem sadece bir LocalScript içinde çalışacaktır.
Dönüşler
Kod Örnekleri
local VRService = game:GetService("VRService")
VRService:RecenterUserHeadCFrame()
RequestNavigation
Bu yöntem, CFrame olarak özelleştirilmiş Enum.UserCFrame kullanarak görüntüleyici parabolasının kaynağı olarak kullanılır. Bu, VR'yi oyununuza entegre etmek için bir yol sağlayarak kullanıcının VR cihazından bir yönlendirme yolunu görüntü
VRService ın benzer bir etkinliği vardır, NavigationRequested, böyle istekleri tespit etmek için kullanılır. Bu ayrıca birkaç UserInputService VR yöntem ve etkinliği ile birlikte kullanılabilir.
Bu yöntem sadece bir LocalScript içinde çalışacaktır.
Parametreler
Navigasyon istenen VR cihazı.
Dönüşler
Kod Örnekleri
local VRService = game:GetService("VRService")
local destination = workspace:FindFirstChild("NavigationDestination")
VRService:RequestNavigation(Enum.UserCFrame.Head, destination.CFrame)
SetTouchpadMode
Bu yöntem, belirlenen Enum.VRTouchpad ile belirlenen Enum.VRTouchpadMode arasındaki modu ayarlar. Kullanıcının VR'si (Dokunmatik Gerçeklik) dokunmatik gerçekliği modunu değiştirmek için kullanılabilir.
Bu ayrıca birkaç UserInputService VR yöntemi ve etkinliğiyle birlikte kullanılabilir.
Bu yöntem sadece bir LocalScript içinde çalışacaktır.
Parametreler
Belirlenen VRTouchpad modunu ayarlamak istiyorsunuz.
Belirlenen enum.vrtouchpad|vrtouchpad 'i ayarlamak istediğiniz modu.
Dönüşler
Kod Örnekleri
local VRService = game:GetService("VRService")
VRService:SetTouchpadMode(Enum.VRTouchpad.Left, Enum.VRTouchpadMode.Touch)
Etkinlikler
NavigationRequested
Bu olay, bir belirli VRService VR cihazı için bir özel Enum.UserCFrame için Navigasyon istenildiğinde tetiklenir. Tetiklenirken bir CFrame koordinatı ve belirli bir 1> Class.UserCFrame1> gösterir.
Bu etkinlik UserInputService hizmet etkinlikleri ve yöntemleriyle birlikte kullanılabilir.
Bu olay yerel olarak başlar, sadece bir LocalScript içinde kullanılabilir.
Parametreler
Navigasyon için talep edilen VR cihazını gösterir.
Kod Örnekleri
local VRService = game:GetService("VRService")
VRService.TouchpadModeChanged:Connect(function(cframe, inputUserCFrame)
print(inputUserCFrame.Name .. " made request with CFrame: " .. cframe)
end)
TouchpadModeChanged
Bu etkinlik, bir Enum.VRTouchpadMode``Enum.VRTouchpad ın değiştirilmesi durumunda çalışır. Bu etkinliği kullanarak, kullanıcının kliği aracılığıyla bağlanan VR dokunmatik alanlarınızın durumlarını izleyebilirsiniz.
Bu etkinlik UserInputService hizmet etkinlikleri ve yöntemleriyle birlikte kullanılabilir.
Bu olay yerel olarak başlar, sadece bir LocalScript içinde kullanılabilir.
Parametreler
Modu değiştiren dokunmatik alan.
Yeni mod.
Kod Örnekleri
local VRService = game:GetService("VRService")
VRService.NavigationRequested:Connect(function(pad, mode)
print(pad.Name .. " Touchpad changed to state: " .. mode.Name)
end)
UserCFrameChanged
Bu olay, bir Enum.UserCFrame'ın değiştirildiğinde çalışır, örneğin bir kullanıcı VR cihazını hareket ettirirken. Onu takip etmek için GetUserCFrame() ile birlik
Bu olay yerel olarak başlar, sadece bir LocalScript içinde kullanılabilir.
Parametreler
Değişen VR cihazının türü.
Kod Örnekleri
local VRService = game:GetService("VRService")
VRService.UserCFrameChanged:Connect(function(userCFrameType, cframeValue)
print(userCFrameType.Name .. " changed. Updated Frame: " .. tostring(cframeValue))
end)
UserCFrameEnabled
Bu etkinlik, bir Enum.UserCFrame 활성leştirıldığında veya devre dışı bırakıldığında tetiklenir. Bu, belirli bir GetUserCFrameEnabled()'nin etkinleştirilipya dağılmasını
Bu olay yerel olarak başlar, sadece bir LocalScript içinde kullanılabilir.
Parametreler
UserCFrame|UserCFrame etkinleştiriliyor veya devre dışı bırakılıyor.
UserCFrame|UserCFrame ın etkinleştirilip etkinleştirilmediğini gösteren bir booleoid ( true ) veya etkinleştirilmediğini gösteren bir booleoid ( false ).
Kod Örnekleri
local VRService = game:GetService("VRService")
VRService.UserCFrameEnabled:Connect(function(type, enabled)
if enabled then
print(type.Name .. " got enabled!")
else
print(type.Name .. " got disabled!")
end
end)