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

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

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

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

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

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

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

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

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

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

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

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

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

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)