VRService

Afficher les obsolètes

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

Création impossible
Service

VRService est responsable de la gestion des interactions entre Roblox et la réalité virtuelle (VR).Ses méthodes, propriétés et événements vous aident à fournir la meilleure expérience pour les utilisateurs finaux qui cherchent à expérimenter Roblox sur des appareils VR.

Voir directives VR pour plus d'informations sur la publication d'une expérience pour les appareils VR.

Échantillons de code

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

Résumé

Propriétés

Méthodes

Évènements

Propriétés

AutomaticScaling

Lecture parallèle

Lorsqu'il est défini à Enum.VRScaling.World, Camera.HeadScale ajuste de sorte que la taille du monde soit vue du point de vue de l'avatar.Un joueur avec un petit avatar percevra les objets autour de lui comme plus grands que ceux d'un joueur avec un grand avatar.

AvatarGestures

Lecture parallèle

Lorsqu'il est réglé sur vrai, un joueur VR pourra animer ses mains et sa tête en utilisant ses contrôleurs et son casque.

Cette propriété doit être définie sur le serveur.

Lecture parallèle

FadeOutViewOnCollision

Lecture parallèle

Lorsque c'est vrai, la vue d'un joueur VR disparaît en noir lorsque sa tête se heurte à un objet.Cette propriété empêche les joueurs de pouvoir voir à travers les murs en VR.La valeur par défaut est vraie.

GuiInputUserCFrame

Non répliqué
Lecture parallèle

Cette propriété décrit ce que Enum.UserCFrame est responsable de l'entrée dans VR.Par instance, si un casque VR est responsable, la valeur de cette propriété sera Enum.UserCFrame.Head .

Pour vérifier si Roblox détecte des appareils VR, qui seraient responsables de l'entrée en VR, vous pouvez vérifier la propriété VREnabled.

Échantillons de code

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
Lecture parallèle

ThirdPersonFollowCamEnabled

Lecture uniquement
Non répliqué
Lecture parallèle

VREnabled

Lecture uniquement
Non répliqué
Lecture parallèle

Cette propriété décrit si l'utilisateur utilise un appareil de réalité virtuelle (VR).

Si un appareil VR est activé, vous pouvez interagir avec sa localisation et son mouvement via des méthodes telles que UserInputService:GetUserCFrame().Vous pouvez également réagir au mouvement du dispositif VR en utilisant l'événement 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

Cette propriété ne peut être utilisée qu'en LocalScript .

Voir aussi

Échantillons de code

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

Méthodes

GetTouchpadMode

Cette méthode renvoie le Enum.VRTouchpadMode indiquant le mode d'un mode spécifié Enum.VRTouchpad .Le mode retourné indique comment l'utilisateur interagit avec son touchpad pour jouer au jeu.

Cela peut également être utilisé aux côtés des plusieurs méthodes et événements VR UserInputService.

Cette méthode ne fonctionnera que lorsqu'elle est utilisée dans un LocalScript.

Paramètres

Valeur par défaut : ""

Retours

Le mode du spécifié VRTouchpad .

Échantillons de code

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

Cette méthode renvoie un CFrame décrivant la position et l'orientation d'un appareil de réalité virtuelle spécifié comme un décalage par rapport à un point dans l'espace du monde réel.Cette méthode doit être utilisée lors de la mise en œuvre de la compatibilité VR dans un jeu pour obtenir et suivre le mouvement d'un appareil VR connecté.

En utilisant la méthode, les développeurs peuvent implémenter des fonctionnalités telles que le répositionnement du personnage de l'utilisateur dans le jeu correspondant à l'emplacement d'un appareil VR connecté.Cela peut être fait en modifiant le CFrame du personnage du joueur dans le jeu pour correspondre au CFrame de l'appareil VR spécifié en utilisant les arguments de valeur UserCFrame et CFrame transmis par l'événement.

VRService fournit également un événement UserCFrameChanged qui se déclenche automatiquement lorsque le CFrame du dispositif VR connecté change, tant qu'il est utilisé dans un LocalScript .

Cette méthode ne fonctionnera que lorsqu'elle est utilisée dans un LocalScript.

Paramètres

Valeur par défaut : ""

Retours

Échantillons de code

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

Cette méthode renvoie true si le dispositif de réalité virtuelle spécifié Enum.UserCFrame est disponible pour être écouté.Il peut être utilisé pour déterminer si un appareil VR spécifié, tel que Enum.UserCFrame.Head, est connecté au jeu de l'utilisateur.

Cela peut également être utilisé aux côtés des plusieurs méthodes et événements VR UserInputService.

Cette méthode ne fonctionnera que lorsqu'elle est utilisée dans un LocalScript.

Paramètres

Le type spécifié de appareilVR.

Valeur par défaut : ""

Retours

Un booléen indiquant si le dispositif VR spécifié est activé ( true ) ou désactivé ( false ).

Échantillons de code

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

()

Cette méthode redécentre le CFrame de la tête de l'utilisateur à l'emplacement actuel du casque VR porté par l'utilisateur.Il peut être utilisé pour assurer que la tête de l'utilisateur dans le jeu soit positionnée en fonction de l'emplacement du casque VR de l'utilisateur.

Cela se comporte de manière identique à UserInputService:RecenterUserHeadCFrame().

Cette méthode ne fonctionnera que lorsqu'elle est utilisée dans un LocalScript.


Retours

()

Échantillons de code

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

()

Cette méthode demande la navigation vers le spécifié CFrame en utilisant le spécifié Enum.UserCFrame comme origine pour la parabole visuelle.Il peut être utilisé pour incorporer la réalité virtuelle (VR) dans votre jeu en fournissant un moyen de visualiser un chemin de navigation depuis l'appareil VR de l'utilisateur jusqu'à une destination.

VRService a un événement similaire, NavigationRequested, utilisé pour détecter de telles demandes.Cela peut également être utilisé aux côtés des plusieurs méthodes et événements VR UserInputService.

Cette méthode ne fonctionnera que lorsqu'elle est utilisée dans un LocalScript.

Paramètres

cframe: CFrame

Les coordonnées spécifiées CFrame .

Valeur par défaut : ""
inputUserCFrame: Enum.UserCFrame

L'appareil VR pour lequel la navigation est demandée.

Valeur par défaut : ""

Retours

()

Échantillons de code

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

()

Cette méthode définit le mode du mode spécifié Enum.VRTouchpad à celui spécifié Enum.VRTouchpadMode.Il peut être utilisé pour modifier le mode de la tablette de réalité virtuelle (VR) de l'utilisateur afin que l'utilisateur interagisse différemment avec le jeu en utilisant la tablette.

Cela peut également être utilisé aux côtés des plusieurs méthodes et événements VR UserInputService.

Cette méthode ne fonctionnera que lorsqu'elle est utilisée dans un LocalScript.

Paramètres

Le mode spécifié VRTouchpad que vous souhaitez définir.

Valeur par défaut : ""

Le mode auquel vous souhaitez définir le VRTouchpad spécifié.

Valeur par défaut : ""

Retours

()

Échantillons de code

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)

Évènements

Cet événement se déclenche lorsque la navigation est demandée à partir de VRService pour un appareil VR spécifié Enum.UserCFrame.Il tire avec une coordonnée CFrame et l'indication spécifiée Enum.UserCFrame indiquant la demande d'appareil demandant la navigation.

Cet événement peut être utilisé aux côtés des événements et des méthodes de service UserInputService.

Puisque cet événement se déclenche localement, il ne peut être utilisé qu'en LocalScript .

Paramètres

cframe: CFrame

Les coordonnées demandées CFrame .

inputUserCFrame: Enum.UserCFrame

Indique l'appareil VR pour lequel la navigation est demandée.


Échantillons de code

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

Cet événement se déclenche si le Enum.VRTouchpadMode d'un Enum.VRTouchpad est modifié.Vous pouvez utiliser cet événement pour suivre les états des touches VR connectées via le client de l'utilisateur.

Cet événement peut être utilisé aux côtés des événements et des méthodes de service UserInputService.

Puisque cet événement se déclenche localement, il ne peut être utilisé qu'en LocalScript .

Paramètres

Le touchpad qui a changé de mode.

Le nouveau mode.


Échantillons de code

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

Cet événement se déclenche lorsqu'un Enum.UserCFrame est modifié, par exemple lorsque l'utilisateur déplace un appareil VR connecté.Il peut être utilisé aux côtés de GetUserCFrame() pour suivre les coordonnées CFrame d'un appareil VR et lorsqu'il change/se déplace.Il peut également être utilisé aux côtés des événements et des méthodes de service UserInputService.

Puisque cet événement se déclenche localement, il ne peut être utilisé qu'en LocalScript .

Paramètres

Le type d'appareil VR qui a changé.

value: CFrame

Les coordonnées mises à jour CFrame de l'appareil VR après le changement.


Échantillons de code

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

Cet événement se déclenche lorsqu'un Enum.UserCFrame est activé ou désactivé.Il peut être utilisé aux côtés de GetUserCFrameEnabled() pour suivre si un UserCFrame spécifié est activé et quand son état change.Il peut également être utilisé aux côtés des événements et des méthodes de service UserInputService.

Puisque cet événement se déclenche localement, il ne peut être utilisé qu'en LocalScript .

Paramètres

Le UserCFrame obtenir activé ou désactivé.

enabled: boolean

Un booléen indiquant si le UserCFrame est activé ( true ) ou désactivé ( false ).


Échantillons de code

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)