VRService

Pokaż przestarzałe

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

Brak możliwości tworzenia
Usługa

VRService jest odpowiedzialny za przetwarzanie interakcji między Roblox i Virtual Reality (VR). Jego metody, właściwości i wydarzenia pomagają Ci dostarczyć najlepszych doświadczeń dla użytkowników końcowych szukających doświadczenia Roblox na urządzeniach VR.

Zobacz linie kierunkowe VR dla więcej informacji na temat publikacji doświadczenia dla urządzeń VR.

Przykłady kodu

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

Podsumowanie

Właściwości

Metody

Właściwości

AutomaticScaling

Odczyt równoległy

Gdy ustawiony na Enum.VRScaling.World , Camera.HeadScale dostosuje się, aby skala świata była widoczna z punktu widzenia awatara. Gracz z małym awatarem będzie postrzegać obiekty wokół nich jako większe niż gracz z dużym awatarem.

AvatarGestures

Odczyt równoległy

Gdy ustawiony na prawdę, gracz VR będzie w stanie animować swoje ręce i głowę za pomocą swojego kontrolera i zestaw słuchawkowy.

Ta właściwość musi być ustawiona na serwerze.

Odczyt równoległy

FadeOutViewOnCollision

Odczyt równoległy

Gdy prawda, widok gracza VR zanika czarny, gdy ich głowa koliduje z obiektem. Ta właściwość zapobiega graczom widzieć poprzez ściany podczas VR. Domyślną wartość jest prawda.

GuiInputUserCFrame

Bez replikacji
Odczyt równoległy

Ta właściwość opisuje to, co Enum.UserCFrame jest odpowiedzialny za wejście w VR. Na instancja, jeśli kaseta VR jest odpowiedzialna, wartość tej właściwości będzie Enum.UserCFrame.Head.

Aby sprawdzić, czy Roblox wykryje jakiekolwiek VR-urządzenie, które będzie odpowiadać za wejście w VR, można sprawdzić właściwość VREnabled.

Przykłady kodu

VRService.GuiInputUserCFrame

local VRService = game:GetService("VRService")
if VRService.VREnabled then
print(VRService.GuiInputUserCFrame.Name)
else
print("No VR device detected!")
end
Odczyt równoległy

ThirdPersonFollowCamEnabled

Tylko do odczytu
Bez replikacji
Odczyt równoległy

VREnabled

Tylko do odczytu
Bez replikacji
Odczyt równoległy

To właściwość opisuje, czy użytkownik używa urządzeniewirtualnej rzeczywistości (VR).

Jeśli urządzenie VR jest włączone, możesz z nim interagować poprzez metody, takie jak UserInputService:GetUserCFrame() . Możesz również reagować na ruch urządzenia VR poprzez wydarzenie UserInputService.UserCFrameChanged.


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

Właściwość ta może być używana tylko w LocalScript .

Zobacz również

Przykłady kodu

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

Metody

GetTouchpadMode

Ten metod returnuje Enum.VRTouchpadMode wskazując tryb określonego Enum.VRTouchpad . W trybie zwróconym wskazuje, jak użytkownik wchodzi w interakcję ze swoim touchpad, aby grać w grę.

Można go również używać wraz z kilkoma metodami i wydarzeniami UserInputService VR.

Ten metod działa tylko w LocalScript .

Parametry


Zwroty

Tryb określonego VRTouchpad .

Przykłady kodu

VRService:GetTouchpadMode

local VRService = game:GetService("VRService")
VRService:GetTouchpadMode(Enum.VRTouchpad.Left)

GetUserCFrame

Ten metod return a CFrame opisujący pozycję i orientację określonego urządzenia wirtualnej rzeczywistości (VR) jako odchylenie od punktu w przestrzeni świata rzeczywistego. Ten metod powinien być używany, gdy wdrożono kompatybilność VR w grze, aby uzyskać i śledzić ruch połączonego urządzenieVR.

Używając metody, rozwójcy mogą implementować funkcje, takie jak ponowne położenie pozycji użytkownika odpowiadającej lokalizacji połączonego urządzenieVR. To można zrobić poprzez zmianę CFrame użytkownika w grze, aby pasował do CFrame określonego urządzenia VR za pomocą argumentów

VRService dostarcza również wydarzenie UserCFrameChanged, które automatycznie się uruchamia, gdy CFrame VR urządzenia połączonego zmienia się, tak długo, jak jest używany w 0> Class.LocalScript0> .

Ten metod działa tylko w LocalScript .

Parametry

Specjalny UserCFrame .


Zwroty

Przykłady kodu

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

Ten metod return true if the specified Enum.UserCFrame wirtualny reality device (VR) jest dostępny do słuchania. Można go użyć do określenia, czy określony VR urządzenie, takie jak Enum.UserCFrame.Head , jest połączony z graużytkownika.

Można go również używać wraz z kilkoma metodami i wydarzeniami UserInputService VR.

Ten metod działa tylko w LocalScript .

Parametry

Wskazany typ urządzenieVR.


Zwroty

Boolean wskazujący, czy określony urząd VR jest włączony ( true ) lub wyłączony ( false ).

Przykłady kodu

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

Ten metod re-centruje CFrame użytkownika głowy na obecną lokalizację noszonego przez użytkownika VR-headset. Można go użyć do zapewnienia, że użytkownik w grze ma ustawioną głowę zgodnie ze lokalizacją noszonego przez użytkownika zestaw słuchawkowy.

Zachowuje się identycznie do UserInputService:RecenterUserHeadCFrame() .

Ten metod działa tylko w LocalScript .


Zwroty

void

Przykłady kodu

VRService:RecenterUserHeadCFrame

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

RequestNavigation

void

Ten metodą prosi o nawigację do określonego CFrame używającym określonego Enum.UserCFrame jako źródła dla wizualizera parabola. Można go użyć do zintegrowania wirtualnej rzeczywistości (VR) w swojej grze poprzez zapewnienie środka do wizualizacji drogi nawigacji z urządzenia użytkownika do celu.

VRService ma podobne wydarzenie, NavigationRequested, używane do wykrywania takich wniosków. Można również używać go wraz z kilku metodami i wydarzeniami VR UserInputService.

Ten metod działa tylko w LocalScript .

Parametry

cframe: CFrame

Wskazane CFrame koordynaty.

inputUserCFrame: Enum.UserCFrame

Urządzenie VR dla którego wymagana jest nawigacja.


Zwroty

void

Przykłady kodu

VRService:RequestNavigation

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

SetTouchpadMode

void

Ten metod ustawia tryb określonego Enum.VRTouchpad na tryb Enum.VRTouchpadMode. Można go użyć do zmiany trybu wirtualnej rzeczywistości użytkownika (VR), aby użytkownik wchodził w interakcję z grą za pomocą touchpadu.

Można go również używać wraz z kilkoma metodami i wydarzeniami UserInputService VR.

Ten metod działa tylko w LocalScript .

Parametry

Specjalny VRTouchpad ustawisz tryb.

Tryb, w którym chcesz ustawić określony VRTouchpad .


Zwroty

void

Przykłady kodu

VRService:SetTouchpadMode

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

Zdarzenia

Ten wąż pojawia się, gdy prośba o nawigację jest wysłana z VRService dla określonego urządzenia VR. Występuje z Enum.UserCFrame koordynatorem i CFrame wskazującym na urządzenie proszące o nawigację.

Ten wątek może być używany wraz z wydarzeniami UserInputService i metodami.

Ponieważ ten wątek działa lokalnie, można go używać tylko w LocalScript .

Parametry

cframe: CFrame

Proszone CFrame koordynaty.

inputUserCFrame: Enum.UserCFrame

Wskazuje urządzenie VR dla którego prosi o nawigację.


Przykłady kodu

VRService.NavigationRequested

local VRService = game:GetService("VRService")
VRService.TouchpadModeChanged:Connect(function(cframe, inputUserCFrame)
print(inputUserCFrame.Name .. " made request with CFrame: " .. cframe)
end)

TouchpadModeChanged

Ten ewent zostanie wywołany, jeśli Enum.VRTouchpadMode z Enum.VRTouchpad zostanie zmieniony. Możesz użyć tego ewentu do śledzenia stanów dotykowych VR touchpadów połączonych za pośrednictwem klienta użytkownika.

Ten wątek może być używany wraz z wydarzeniami UserInputService i metodami.

Ponieważ ten wątek działa lokalnie, można go używać tylko w LocalScript .

Parametry

Touchpad, który zmienił tryb.

Nowy tryb.


Przykłady kodu

VRService.TouchpadModeChanged

local VRService = game:GetService("VRService")
VRService.NavigationRequested:Connect(function(pad, mode)
print(pad.Name .. " Touchpad changed to state: " .. mode.Name)
end)

UserCFrameChanged

Ten wąż pojawia się, gdy Enum.UserCFrame jest zmieniany, na przykład gdy użytkownik porusza powiązany urządzenieVR. Można go używać wraz z GetUserCFrame() , aby śledzić koordynaty Datatype.C

Ponieważ ten wątek działa lokalnie, można go używać tylko w LocalScript .

Parametry

Typ urządzenia VR, który się zmienił.

value: CFrame

Aktualizowane CFrame koordynaty urządzenia VR po zmianie.


Przykłady kodu

VRService.UserCFrameChanged

local VRService = game:GetService("VRService")
VRService.UserCFrameChanged:Connect(function(userCFrameType, cframeValue)
print(userCFrameType.Name .. " changed. Updated Frame: " .. tostring(cframeValue))
end)

UserCFrameEnabled

Ten ewent zostanie wywołany, gdy Enum.UserCFrame jest włączony lub wyłączony. Można go używać obok GetUserCFrameEnabled() do śledzenia, czy UserCFrame jest włączony, a g

Ponieważ ten wątek działa lokalnie, można go używać tylko w LocalScript .

Parametry

The UserCFrame getting enabled or disabled.

enabled: bool

Boolean wskazujący, czy UserCFrame jest włączony ( true ) lub wyłączony ( false ).


Przykłady kodu

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)