VRService
*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.
VRService ist verantwortlich für die Verarbeitung von Interaktionen zwischen Roblox und Virtual Reality (VR). Seine Methoden, Eigenschaften und Ereignisse helfen Ihnen, die beste Erfahrung für Endbenutzer zu bieten, die Roblox auf VR-Geräten erleben möchten.
Siehe VR-Richtlinien für weitere Informationen zum Veröffentlichen eines Erlebnisses für VR-Geräte.
Code-Beispiele
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
Zusammenfassung
Eigenschaften
Zur Anpassung der Skalierung in VR, um den Spieler mit ihrem Avatar auszurichten.
Wenn es wahr ist, wird ein VR-Spieler in der Lage sein, seine Hände und seinen Kopf mit seinen Controllern und Headsetzu animieren.
Wenn wahr, wird die Sicht eines Spieler:inschwarz, wenn sein Kopf mit einem Objekt kollidiert.
Beschreibt, was Enum.UserCFrame für die Eingabe in VR verantwortlich ist.
Beschreibt, ob der Benutzer ein virtuelles Gerätverwendet.
Methoden
Kehrt den VRTouchpadMode zurück, der den Modus eines bestimmten VRTouchpads anzeigt.
Kehre ein CFrame zurück, das die Position und Ausrichtung eines bestimmten virtuellen Realitätsgeräts als Offset von einem Punkt in der realen Platzbeschreibt.
Kehrt wahr zurück, wenn das angegebene Enum.UserCFrame verfügbar ist, um zu hören.
Setzt den CFrame wieder an den aktuellen Standort der VR-Kopfset, die der Benutzer trägt.
Anfragen Navigation zu dem angegebenen CFrame mit dem angegebenen Enum.UserCFrame als Quelle für den Visualizer-Parabola.
Setzt den Modus des angegebenen Enum.VRTouchpad auf den angegebenen Enum.VRTouchpadMode .
Ereignisse
Ausgelöst, wenn die Navigation von VRService angefordert wird.
Feuert, wenn die Enum.VRTouchpadMode eines Enum.VRTouchpad geändert wird.
Feuert ab, wenn eine Enum.UserCFrame geändert wird.
Feuert, wenn ein Enum.UserCFrame aktiviert oder deaktiviert ist.
Eigenschaften
AutomaticScaling
Wenn auf Class.Camera.HeadScale eingestellt, wird die Skalierung der Welt so angepasst, dass die Skalierung der Welt aus der Perspektive des Avatars gesehen wird. Ein Spieler mit einem kleinen Avatar wird die Objekte um ihn herum als größer wahrnehmen, als ein Spieler mit einem großen Avatar.
AvatarGestures
Wenn auf wahr gesetzt, kann ein VR-Spieler seine Hände und seinen Kopf mit seinen Controllern und Headsetanimieren.
Diese Einstellung muss auf dem Server gesetzt sein.
ControllerModels
FadeOutViewOnCollision
Wenn wahr, verschwindet die Sicht eines Spieler:in, wenn sein Kopf mit einem Objekt kollidiert. Diese Eigenschaft verhindert, dass Spieler durch Wände sehen können, während sie in VR sind. Der Standardwert ist wahr.
GuiInputUserCFrame
Dieses Eigenschaftsbeschreibung beschreibt, was Enum.UserCFrame für die Eingabe in VR verantwortlich ist. Zum Instanz, wenn ein VR-Kopfset verantwortlich ist, wird der Wert dieser Eigenschaft Enum.UserCFrame.Head sein.
Um zu überprüfen, ob Roblox irgendwelche VR-Geräte erkennt, die für die Eingabe in VR verantwortlich wären, können Sie die VREnabled Eigenschaftenüberprüfen.
Code-Beispiele
local VRService = game:GetService("VRService")
if VRService.VREnabled then
print(VRService.GuiInputUserCFrame.Name)
else
print("No VR device detected!")
end
LaserPointer
ThirdPersonFollowCamEnabled
VREnabled
Diese Eigenschaft beschreibt, ob der Benutzer ein virtuelles Realität (VR) -Gerät verwendet.
Wenn ein VR-Gerät aktiviert ist, können Sie mit seiner Position und Bewegung interagieren, indem Sie Methoden wie UserInputService:GetUserCFrame() verwenden. Sie können auch auf die Bewegung des VR-Geräts reagieren, indem Sie das Ereignis UserInputService.UserCFrameChanged verwenden.
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
Diese Eigenschaft kann nur in einem LocalScript verwendet werden.
Siehe auch
Code-Beispiele
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
Methoden
GetTouchpadMode
Diese Methode gibt die Enum.VRTouchpadMode zurück, die den Modus eines bestimmten Enum.VRTouchpad anzeigt. Der zurückgegebene Modus zeigt an, wie der Benutzer mit ihrem Touchpad interagiert, um das Spiel zu spielen.
Dies kann auch neben den mehreren UserInputService VR- Methoden und -Ereignissen verwendet werden.
Diese Methode wird nur in einem LocalScript funktionieren.
Parameter
Der angegebene VRTouchpad .
Rückgaben
Die Mode des angegebenen VRTouchpad .
Code-Beispiele
local VRService = game:GetService("VRService")
VRService:GetTouchpadMode(Enum.VRTouchpad.Left)
GetUserCFrame
Diese Methode gibt eine CFrame zurück, die die Position und Ausrichtung eines bestimmten virtuellen Realitätsgeräts (VR) als Offset von einem Punkt im realen Platzbeschreibt. Diese Methode sollte verwendet werden, wenn die VR-Kompatibilität in einem Spiel implementiert wird, um die Bewegung eines verbundenen VR-Geräts zu erhalten und zu verfolgen.
Durch die Verwendung der Methode können Entwickler Funktionen implementieren, wie das Neuposizionieren des Benutzers in-Game-Charakter entsprechend der Position eines verbundenen VR-Geräts. Dies kann durch Ändern des CFrame des Benutzers in-Game-Charakter zu ermöglichen, die den CFrame des angegebenen VR-Geräts mit den CFrame-Werten, die durch das Benut
VRService bietet auch ein UserCFrameChanged -Ereignis, das automatisch ausgeführt wird, wenn sich der CFrame des verbundenen VR-Geräts ändert, solange er in einem 0> Class.LocalScript0> verwendet wird.
Diese Methode wird nur in einem LocalScript funktionieren.
Parameter
Der angegebene UserCFrame .
Rückgaben
Code-Beispiele
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
Diese Methode gibt zurück, wenn das angegebene Enum.UserCFrame-Virtual-Realität-Gerät (VR) verfügbar ist, auf das zugehörte zu hören. Es kann verwendet werden, um zu bestimmen, ob ein bestimmtes VR-Gerät, wie Enum.UserCFrame.Head, mit dem Spiel des Benutzers verbunden ist.
Dies kann auch neben den mehreren UserInputService VR- Methoden und -Ereignissen verwendet werden.
Diese Methode wird nur in einem LocalScript funktionieren.
Parameter
Der angegebene Typ von VR-Gerät.
Rückgaben
EinBoolean, der anzeigt, ob das angegebene VR-Gerät aktiviert ( true ) oder deaktiviert ( false ) ist.
Code-Beispiele
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
Diese Methode re-Zentriert das CFrame der Benutzeroberkante an die aktuelle Position des VR-Kopfsetts, das von dem Benutzer getragen wird. Es kann verwendet werden, um sicherzustellen, dass die Benutzeroberkante des Spiels in der Position des Benutzers Headsetgetragen wird.
Dies verhält sich identisch zu UserInputService:RecenterUserHeadCFrame() .
Diese Methode wird nur in einem LocalScript funktionieren.
Rückgaben
Code-Beispiele
local VRService = game:GetService("VRService")
VRService:RecenterUserHeadCFrame()
RequestNavigation
Diese Methode benötigt Navigation zum angegebenen CFrame mit dem angegebenen Enum.UserCFrame als Quelle für die visuelle Navigation. Es kann verwendet werden, um virtuelle Realität (VR) in dein Spiel zu integrieren, indem ein Mittler bereitgestellt wird, um eine Navigationspfad vom VR-Gerät des Benutzers zu einer Zielvitrine zu visualisieren.
VRService hat ein ähnliches Ereignis, NavigationRequested, das verwendet wird, um solche Anfragen zu erkennen. Dies kann auch neben den verschiedenen UserInputService VR- Methoden und -Ereignissen verwendet werden.
Diese Methode wird nur in einem LocalScript funktionieren.
Parameter
Das VR-Gerät, für das die Navigation angefordert wird.
Rückgaben
Code-Beispiele
local VRService = game:GetService("VRService")
local destination = workspace:FindFirstChild("NavigationDestination")
VRService:RequestNavigation(Enum.UserCFrame.Head, destination.CFrame)
SetTouchpadMode
Diese Methode setzt den Modus des angegebenen Enum.VRTouchpad auf den angegebenen Enum.VRTouchpadMode . Es kann verwendet werden, um den Benutzer-VR-Touchpad-Modus zu ändern, damit der Benutzer mit dem Spiel interagiert, indem er den Touchpad verwendet.
Dies kann auch neben den mehreren UserInputService VR- Methoden und -Ereignissen verwendet werden.
Diese Methode wird nur in einem LocalScript funktionieren.
Parameter
Der angegebene VRTouchpad du willst den Modus einstellen.
Den Modus, unter den du das angegebene VRTouchpad einstellen möchtest.
Rückgaben
Code-Beispiele
local VRService = game:GetService("VRService")
VRService:SetTouchpadMode(Enum.VRTouchpad.Left, Enum.VRTouchpadMode.Touch)
Ereignisse
NavigationRequested
Dieses Ereignis wird ausgelöst, wenn die Navigation von VRService für ein bestimmtes Enum.UserCFrame VR-Gerät angefordert wird. Es wird mit einem CFrame-Koordinaten und dem angegebenen 1> Enum.UserCFrame1> angezeigt, der die Navigation anfordert.
Dieses Ereignis kann neben UserInputService Dienste-Ereignissen und -M Methoden verwendet werden.
Da dieses Ereignis lokal ausgeführt wird, kann es nur in einem LocalScript verwendet werden.
Parameter
Zeigt das VR-Gerät an, für das eine Navigation angefordert wird.
Code-Beispiele
local VRService = game:GetService("VRService")
VRService.TouchpadModeChanged:Connect(function(cframe, inputUserCFrame)
print(inputUserCFrame.Name .. " made request with CFrame: " .. cframe)
end)
TouchpadModeChanged
Dieses Ereignis wird ausgelöst, wenn das Enum.VRTouchpadMode eines Enum.VRTouchpad geändert wird. Sie können dieses Ereignis verwenden, um die Zustände der VR-Touchpads zu verfolgen, die über den Client des Benutzers verbunden sind.
Dieses Ereignis kann neben UserInputService Dienste-Ereignissen und -M Methoden verwendet werden.
Da dieses Ereignis lokal ausgeführt wird, kann es nur in einem LocalScript verwendet werden.
Parameter
Das Touchpad, das den Modus verändert hat.
Der neue Modus.
Code-Beispiele
local VRService = game:GetService("VRService")
VRService.NavigationRequested:Connect(function(pad, mode)
print(pad.Name .. " Touchpad changed to state: " .. mode.Name)
end)
UserCFrameChanged
Dieses Ereignis wird ausgelöst, wenn ein Enum.UserCFrame geändert wird, z. B. wenn der Benutzer ein verbundenes VR-Gerät bewegt. Es kann neben Class.VRService:GetUserCFrame()|GetUserCFrame() verwendet werden, um die Datatype.CFrame -Koordinaten eines VR-Ger
Da dieses Ereignis lokal ausgeführt wird, kann es nur in einem LocalScript verwendet werden.
Parameter
Die Art des VR-Geräts, die sich geändert hat.
Code-Beispiele
local VRService = game:GetService("VRService")
VRService.UserCFrameChanged:Connect(function(userCFrameType, cframeValue)
print(userCFrameType.Name .. " changed. Updated Frame: " .. tostring(cframeValue))
end)
UserCFrameEnabled
Dieses Ereignis wird ausgelöst, wenn ein Enum.UserCFrame aktiviert oder deaktiviert wird. Es kann neben GetUserCFrameEnabled() verwendet werden, um zu überprüfen, ob ein bestimmtes UserCFrame aktiviert ist, und wenn sein Zustand sich ändert.
Da dieses Ereignis lokal ausgeführt wird, kann es nur in einem LocalScript verwendet werden.
Parameter
Die UserCFrame wird aktiviert oder deaktiviert.
EinBoolean, der anzeigt, ob die UserCFrame aktiviert ist (true), oder deaktiviert ist (false).
Code-Beispiele
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)