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

The following example demonstrates how to get the Enum.UserCFrame of the left controller and place a part at that point in real world space. The CFrame of the controller changes whenever the device moves, so you should update the necessary parts whenever VRService.UserCFrameChanged fires.

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

This example checks if Roblox detects a VR device. If a VR device is detected, this prints the name of the UserCFrame responsible for VR input. If not, this example prints "No VR device detected!".

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

This example demonstrates how to implement a head tracking script that mirrors the movement of a virtual reality (VR) headset (the user's actual head) to their in-game character's head.

The example first check if the user is using a VR device by checking the value of the VREnabled() property. This example only works if the user is using a VR headset.

To determine the initial CFrame of the character's head, the code sample calls GetUserCFrame() and passes Enum.UserCFrame.Head as the argument.

To update the head's CFrame whenever the user's VR headset moves, the example connects the VRService.UserCFrameChanged event to the TrackHead() function. When the event fires to indicate that a VR device moved, TrackHead() checks if the headset moved. If the headset moved, the function updates the CFrame of the character's head to the CFrame value provided as an argument.

As the UserCFrame enum also tracks VR left and right hand devices, the concept of VR device tracking can be expanded to other character bodyparts.

In order for the example to work as expected, it must be placed in a LocalScript.

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

This example retrieves and prints the name of the user's current VRTouchpad.Left touchpad mode.

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

This example positions a part at the player's left hand, assuming Camera.HeadLocked = true

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

This example indicates whether the UserCFrame.Head VR device is enabled or disabled for the user. If the device is enabled, this prints "VR device is enabled!". If the device is disabled, this prints "VR device is disabled!".

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

This example fires the function to recenter the CFrame of the user's head to the current location of the VR headset being worn by the user.

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

This example requests navigation from the user's UserCFrame.Head coordinates to the CFrame coordinates of a Part named NavigationDestination.

Note: In order for this to work, a Part named NavigationDestination must exist in the game's Workspace.

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

This example sets the user's VRTouchpad.Left touchpad mode to TouchMode.Touch. This means that the left touchpad is treated as ButtonB.

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

This example prints the name of the UserCFrame VR device making the request, and the CFrame coordinates passed.

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

This example fires when the state of a VRTouchpad changes. It prints the name of the Touchpad that changed, and the state that it changed to.

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

This event fires when the user moves a connected VR device. When the event fires, this prints the name of the VR device type that changed, and the updated CFrame coordinates.

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

This example fires when a UserCFrame changes state, printing the name of the changed UserCFrame and whether it changed got enabled or disabled.

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)