VRService

Artık kullanılmayanları göster

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

Oluşturulamaz
Hizmet

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

VRService

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

Yöntemler

Etkinlikler

Özellikler

AutomaticScaling

Paralel oku

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

Paralel oku

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.

Paralel oku

FadeOutViewOnCollision

Paralel oku

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

Çoğaltılmamış
Paralel oku

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

VRService.GuiInputUserCFrame

local VRService = game:GetService("VRService")
if VRService.VREnabled then
print(VRService.GuiInputUserCFrame.Name)
else
print("No VR device detected!")
end
Paralel oku

ThirdPersonFollowCamEnabled

Salt Okunur
Çoğaltılmamış
Paralel oku

VREnabled

Salt Okunur
Çoğaltılmamış
Paralel oku

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.VREnabled
if isUsingVR then
print("User is using a VR headset!")
else
print("User is not using a VR headset!")
end

Bu özellik sadece bir LocalScript içinde kullanılabilir.

Ayrıca bakın

Kod Örnekleri

VR Head Tracking

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

Kod Örnekleri

VRService:GetTouchpadMode

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

VRService:GetUserCFrame

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

VRService:GetUserCFrameEnabled

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

void

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

void

Kod Örnekleri

VRService:RecenterUserHeadCFrame

local VRService = game:GetService("VRService")
VRService:RecenterUserHeadCFrame()

RequestNavigation

void

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

cframe: CFrame

Belirlenen CFrame koordinatları.

inputUserCFrame: Enum.UserCFrame

Navigasyon istenen VR cihazı.


Dönüşler

void

Kod Örnekleri

VRService:RequestNavigation

local VRService = game:GetService("VRService")
local destination = workspace:FindFirstChild("NavigationDestination")
VRService:RequestNavigation(Enum.UserCFrame.Head, destination.CFrame)

SetTouchpadMode

void

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

void

Kod Örnekleri

VRService:SetTouchpadMode

local VRService = game:GetService("VRService")
VRService:SetTouchpadMode(Enum.VRTouchpad.Left, Enum.VRTouchpadMode.Touch)

Etkinlikler

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

cframe: CFrame

İstek CFrame koordinatları.

inputUserCFrame: Enum.UserCFrame

Navigasyon için talep edilen VR cihazını gösterir.


Kod Örnekleri

VRService.NavigationRequested

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

VRService.TouchpadModeChanged

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ü.

value: CFrame

Değişiklikten sonra VR cihazının güncellenen CFrame koordinatları.


Kod Örnekleri

VRService.UserCFrameChanged

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.

enabled: bool

UserCFrame|UserCFrame ın etkinleştirilip etkinleştirilmediğini gösteren bir booleoid ( true ) veya etkinleştirilmediğini gösteren bir booleoid ( false ).


Kod Örnekleri

VRService.UserCFrameEnabled

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)