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

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

Lecture parallèle

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.

Lecture parallèle

FadeOutViewOnCollision

Lecture parallèle

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

Non répliqué
Lecture parallèle

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

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 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.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 que dans un LocalScript.

Voir aussi

Échantillons de code

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

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 (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

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

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

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

void

Échantillons de code

VRService:RecenterUserHeadCFrame

local VRService = game:GetService("VRService")
VRService:RecenterUserHeadCFrame()

RequestNavigation

void

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

cframe: CFrame

Les coordonnées spécifiées CFrame .

inputUserCFrame: Enum.UserCFrame

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


Retours

void

Échantillons de code

VRService:RequestNavigation

local VRService = game:GetService("VRService")
local destination = workspace:FindFirstChild("NavigationDestination")
VRService:RequestNavigation(Enum.UserCFrame.Head, destination.CFrame)

SetTouchpadMode

void

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

void

Échantillons de code

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

cframe: CFrame

Les coordonnées demandées CFrame .

inputUserCFrame: Enum.UserCFrame

Indique le VR pour lequel la navigation est requise.


Échantillons de code

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

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é 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é.

value: CFrame

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


Échantillons de code

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é 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é.

enabled: bool

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


Échantillons de code

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)