VRService

Veraltete anzeigen

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

Nicht erstellbar
Dienst

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

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

Zusammenfassung

Eigenschaften

Methoden

Ereignisse

Eigenschaften

AutomaticScaling

Parallel lesen

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

Parallel lesen

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.

Parallel lesen

FadeOutViewOnCollision

Parallel lesen

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

Nicht repliziert
Parallel lesen

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

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
Parallel lesen

ThirdPersonFollowCamEnabled

Schreibgeschützt
Nicht repliziert
Parallel lesen

VREnabled

Schreibgeschützt
Nicht repliziert
Parallel lesen

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

Diese Eigenschaft kann nur in einem LocalScript verwendet werden.

Siehe auch

Code-Beispiele

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

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

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

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

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

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

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

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

void

Code-Beispiele

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

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

cframe: CFrame

Die angegebenen CFrame Koordinaten.

inputUserCFrame: Enum.UserCFrame

Das VR-Gerät, für das die Navigation angefordert wird.


Rückgaben

void

Code-Beispiele

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

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

void

Code-Beispiele

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)

Ereignisse

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

cframe: CFrame

Die angeforderten CFrame-Koordinaten.

inputUserCFrame: Enum.UserCFrame

Zeigt das VR-Gerät an, für das eine Navigation angefordert wird.


Code-Beispiele

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

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

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

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.

value: CFrame

Die aktualisierten CFrame -Koordinaten des VR-Geräts nach der Änderung.


Code-Beispiele

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

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.

enabled: bool

EinBoolean, der anzeigt, ob die UserCFrame aktiviert ist (true), oder deaktiviert ist (false).


Code-Beispiele

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)