VRService
*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.
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
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
Automatycznie dostosowuje skalowanie w VR, aby dostosować gracza do ich awatara.
Gdy prawda, gracz VR będzie w stanie animować ręce i głowę za pomocą swojego kontrolera i zestaw słuchawkowy.
Gdy prawda, widok gracza VR zaniknie, gdy ich głowa uderza przedmiotem.
Opisuje to, co Enum.UserCFrame jest odpowiedzialny za wejście w VR.
Opisuje, czy użytkownik używa urządzeniewirtualnej rzeczywistości.
Metody
Wyświetla tryb VRTouchpadMode wskazujący na tryb określonego VRTouchpad.
Zwraca CFrame opisującą pozycję i orientację określonego urządzenia wirtualnej rzeczywistości jako odchylenie od punktu w przestrzeni rzeczywistej.
Wróщает prawdę, jeśli określony Enum.UserCFrame jest dostępny do słuchania.
Odwraca CFrame do obecnej lokalizacji VR-słuchawki noszonej przez użytkownika.
Żądania nawigacji do określonego CFrame używając Enum.UserCFrame jako źródła dla wizualizatora parabola.
Ustawia tryb określonego Enum.VRTouchpad na Enum.VRTouchpadMode.
Zdarzenia
Wystrzelony, gdy wymagana jest nawigacja z VRService .
Wystrzela, jeśli Enum.VRTouchpadMode z Enum.VRTouchpad jest zmieniony.
Wystąpi, gdy Enum.UserCFrame jest zmieniany.
Wyst?puje, gdy Enum.UserCFrame jest w?czony lub wyłączony.
Właściwości
AutomaticScaling
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
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.
ControllerModels
FadeOutViewOnCollision
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
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
local VRService = game:GetService("VRService")
if VRService.VREnabled then
print(VRService.GuiInputUserCFrame.Name)
else
print("No VR device detected!")
end
LaserPointer
ThirdPersonFollowCamEnabled
VREnabled
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.VREnabledif isUsingVR thenprint("User is using a VR headset!")elseprint("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
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
Wskazany VRTouchpad .
Zwroty
Tryb określonego VRTouchpad .
Przykłady kodu
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
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
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
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
Przykłady kodu
local VRService = game:GetService("VRService")
VRService:RecenterUserHeadCFrame()
RequestNavigation
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
Urządzenie VR dla którego wymagana jest nawigacja.
Zwroty
Przykłady kodu
local VRService = game:GetService("VRService")
local destination = workspace:FindFirstChild("NavigationDestination")
VRService:RequestNavigation(Enum.UserCFrame.Head, destination.CFrame)
SetTouchpadMode
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
Przykłady kodu
local VRService = game:GetService("VRService")
VRService:SetTouchpadMode(Enum.VRTouchpad.Left, Enum.VRTouchpadMode.Touch)
Zdarzenia
NavigationRequested
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
Wskazuje urządzenie VR dla którego prosi o nawigację.
Przykłady kodu
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
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ł.
Przykłady kodu
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.
Boolean wskazujący, czy UserCFrame jest włączony ( true ) lub wyłączony ( false ).
Przykłady kodu
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)