VRService
*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.
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 cherchant à expérimenter Roblox sur les appareils VR.
Voir lignes directrices VR pour plus d'informations sur la publication d'une expérience pour les appareils VR.
Échantillons de code
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
Ajuste automatiquement la mise à l'échelle dans VR pour ajuster le joueur avec son avatar.
Lorsque vrai, un joueur VR pourra animer ses mains et sa tête à l'aide de son contrôleur et de son casque.
Lorsque vrai, la vue d'un joueur VR se noira lorsque sa tête se heurte à un objet.
Décrivez ce que fait Enum.UserCFrame dans VR.
Détermine si l'utilisateur utilise un appareil de réalité virtuelle.
Méthodes
Retourne le VRTouchpadMode indiquant le mode d'un VRTouchpad spécifié.
Retourne un CFrame décrivant la position et l'orientation d'un appareil de réalité virtuelle spécifié comme un décalage d'un point dans l'espace réel.
Retourne vrai si le Enum.UserCFrame spécifié est disponible à écouter.
Récentre le CFrame à l'emplacement actuel de la tête VR portée par l'utilisateur.
Demande la navigation à l'aide du CFrame spécifié en utilisant le Enum.UserCFrame comme origine pour la parabole du visualiseur.
Définit le mode du Enum.VRTouchpad spécifié sur le Enum.VRTouchpadMode spécifié.
Évènements
Lancé lorsque la navigation est demandée à partir de VRService .
Tire si le Enum.VRTouchpadMode d'un Enum.VRTouchpad est modifié.
Se déclenche lorsqu'un Enum.UserCFrame est changé.
Se déclenche lorsqu'un Enum.UserCFrame est activé ou désactivé.
Propriétés
AutomaticScaling
Lorsqu'il est réglé sur Enum.VRScaling.World, Camera.HeadScale, l'ajustement de la balance du monde est ajusté afin que la perspective de l'avatar voie le monde dans l'échelle. Un joueur avec un petit avatar perçoit les objets autour de lui comme plus grands que un joueur avec un grand avatar.
AvatarGestures
Quand il est réglé sur vrai, un joueur VR pourra animer ses mains et sa tête à l'aide de son contrôleur et de sa casque.
Cette propriété doit être définie sur le serveur.
ControllerModels
FadeOutViewOnCollision
Lorsque oui, la vue d'un joueur VR pénètre en noir quand sa tête se heurte à un objet. Cette propriété empêche les joueurs de pouvoir voir à travers les murs pendant VR. La valeur par défaut est oui.
GuiInputUserCFrame
Cette propriété décrit ce que fait Enum.UserCFrame pour 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 n'importe quel appareil VR, qui serait responsable de l'entrée en VR, vous pouvez vérifier la propriété VREnabled.
Échantillons de code
local VRService = game:GetService("VRService")
if VRService.VREnabled then
print(VRService.GuiInputUserCFrame.Name)
else
print("No VR device detected!")
end
LaserPointer
ThirdPersonFollowCamEnabled
VREnabled
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 son emplacement et son mouvement à l'aide de méthodes telles que UserInputService:GetUserCFrame() . Vous pouvez également réagir sur le mouvement de l'appareil VR en utilisant l'événement 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
Cette propriété ne peut être utilisée que dans un LocalScript.
Voir aussi
Échantillons de code
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 Enum.VRTouchpad spécifié. La façon renvoyée indique comment l'utilisateur interagit avec leur touchpad pour jouer au jeu.
Ceci peut également être utilisé avec 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 VRTouchpad spécifié.
Retours
Le mode du VRTouchpad spécifié.
Échantillons de code
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 (VR) spécifié en tant qu'un décalage dans un espace réel. Cette méthode devrait être utilisée lors de l'implémentation de la compatibilité VR dans un jeu pour obtenir et suivre le déplacement d'un appareil de 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 changeant le CFrame de l'utilisateur dans le jeu pour correspondre au CFrame de l'appareil VR spécifié en utilisant l'ensemble d' arguments de l'UserCFrame et
VRService fournit également un événement UserCFrameChanged qui se déclenche automatiquement lorsque le CFrame d'un appareil VR connecté change, tant qu'il est utilisé dans un 0> Class.LocalScript0> .
Cette méthode ne fonctionnera que lorsqu'elle est utilisée dans un LocalScript .
Paramètres
Le UserCFrame spécifié.
Retours
Échantillons de code
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 vrai 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 appareilde VR spécifié, comme Enum.UserCFrame.Head, est connecté au jeu de l'utilisateur.
Ceci peut également être utilisé avec 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 l'appareil VR.
Retours
Un booléen indiquant si le VR appartient spécifié est activé ( true ) ou non ( false ).
Échantillons de code
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 récentre le CFrame de l'utilisateur de sa tête à l'emplacement actuel de la VR Headset portée par l'utilisateur. Il peut être utilisé pour s'assurer que la tête de l'utilisateur dans le jeu est positionnée selon le lieu de la VR casqueportée par l'utilisateur.
Cela se comporte identiquement à UserInputService:RecenterUserHeadCFrame() .
Cette méthode ne fonctionnera que lorsqu'elle est utilisée dans un LocalScript .
Retours
Échantillons de code
local VRService = game:GetService("VRService")
VRService:RecenterUserHeadCFrame()
RequestNavigation
Cette méthode demande la navigation à l'endroit spécifié CFrame en utilisant le Enum.UserCFrame spécifié 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 à partir du dispositif VR de l'utilisateur à une destination.
VRService a un événement similaire, NavigationRequested, utilisé pour détecter de telles demandes. Cela peut également être utilisé avec plusieurs méthodes et événements VR de classe UserInputService.
Cette méthode ne fonctionnera que lorsqu'elle est utilisée dans un LocalScript .
Paramètres
L'appareil VR pour lequel la navigation est demandée.
Retours
Échantillons de code
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 Enum.VRTouchpad spécifié en Enum.VRTouchpadMode . Il peut être utilisé pour modifier le mode de la Ensemble.VRTouchpad du touchpad de l'utilisateur afin qu'il interagisse avec le jeu différemment en utilisant le touchpad.
Ceci peut également être utilisé avec 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 VRTouchpad spécifié que vous souhaitez définir le mode.
Le mode dans lequel vous souhaitez définir le VRTouchpad spécifié.
Retours
Échantillons de code
local VRService = game:GetService("VRService")
VRService:SetTouchpadMode(Enum.VRTouchpad.Left, Enum.VRTouchpadMode.Touch)
Évènements
NavigationRequested
Cet événement se déclenche lorsque la navigation est demandée à partir de VRService pour un VR appareil spécifié. Il se déclenche avec un Enum.UserCFrame coordinate et le spécifié CFrame indiquant le dispositif demandant la navigation.
Cet événement peut être utilisé aux côtés des événements de service UserInputService et des méthodes.
Puisque cet événement se déclenche localement, il ne peut être utilisé que dans un LocalScript .
Paramètres
Indique le VR pour lequel la navigation est requise.
Échantillons de code
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 touchpads VR connectés via le client de l'utilisateur.
Cet événement peut être utilisé aux côtés des événements de service UserInputService et des méthodes.
Puisque cet événement se déclenche localement, il ne peut être utilisé que dans un LocalScript .
Paramètres
Le pad de touche qui a changé de mode.
Le nouveau mode.
Échantillons de code
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é avec GetUserCFrame() pour suivre les coordonnées CFrame d'un appareil V
Puisque cet événement se déclenche localement, il ne peut être utilisé que dans un LocalScript .
Paramètres
Le type d'appareil VR qui a changé.
Échantillons de code
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é avec GetUserCFrameEnabled() pour suivre si un UserCFrame est activé, et quand son état change. Il peut également être
Puisque cet événement se déclenche localement, il ne peut être utilisé que dans un LocalScript .
Paramètres
Le UserCFrame est activé ou désactivé.
Un bouton indiquant si le UserCFrame est activé ( true ) ou désactivé ( false ).
Échantillons de code
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)