VRService
*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.
Serviço VR é responsável por lidar com interações entre Roblox e Realidade Virtual (VR).Seus métodos, propriedades e eventos ajudam você a fornecer a melhor experiência para usuários finais que buscam experimentar o Roblox em dispositivos VR.
Veja Diretrizes de VR para mais informações sobre a publicação de uma experiência para dispositivos VR.
Amostras de código
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.
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
Resumo
Propriedades
Ajusta automaticamente a escala no VR para alinhar o jogador com seu avatar.
Quando verdadeiro, um jogador de VR será capaz de animar suas mãos e cabeça usando seus controladores e óculosde ouvido.
Quando verdadeiro, a visão de um jogador de VR desaparecerá para preto quando sua cabeça colidir com um Objeto.
Descreve o que Enum.UserCFrame é responsável por entrada na VR.
Descreve se o usuário está usando um dispositivo de realidade virtual.
Métodos
Retorna o VRTouchpadMode indicando o modo de um VRTouchpad especificado.
Retorna um CFrame que descreve a posição e orientação de um dispositivo de realidade virtual especificado como um deslocamento a partir de um ponto no espaço do mundo real.
Retorna verdadeiro se o especificado Enum.UserCFrame estiver disponível para ser ouvido.
Re-centra o CFrame na localização atual do fone de ouvido VR que o usuário está usando.
Navegações de solicitações para o especificado CFrame usando o especificado Enum.UserCFrame como origem para a parábola visualizadora.
Define o modo do especificado Enum.VRTouchpad para o especificado Enum.VRTouchpadMode.
Eventos
Dispedido quando a navegação é solicitada de VRService .
Dispara se o Enum.VRTouchpadMode de um Enum.VRTouchpad for alterado.
Dispara quando um Enum.UserCFrame é alterado.
Incêndios quando um Enum.UserCFrame é ativado ou desativado.
Propriedades
AutomaticScaling
AvatarGestures
ControllerModels
FadeOutViewOnCollision
GuiInputUserCFrame
Amostras de código
local VRService = game:GetService("VRService")
if VRService.VREnabled then
print(VRService.GuiInputUserCFrame.Name)
else
print("No VR device detected!")
end
LaserPointer
ThirdPersonFollowCamEnabled
VREnabled
Amostras de código
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étodos
GetTouchpadMode
Parâmetros
Devolução
Amostras de código
local VRService = game:GetService("VRService")
VRService:GetTouchpadMode(Enum.VRTouchpad.Left)
GetUserCFrame
Parâmetros
Devolução
Amostras de código
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
Parâmetros
Devolução
Amostras de código
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
Devolução
Amostras de código
local VRService = game:GetService("VRService")
VRService:RecenterUserHeadCFrame()
RequestNavigation
Parâmetros
Devolução
Amostras de código
local VRService = game:GetService("VRService")
local destination = workspace:FindFirstChild("NavigationDestination")
VRService:RequestNavigation(Enum.UserCFrame.Head, destination.CFrame)
SetTouchpadMode
Parâmetros
Devolução
Amostras de código
local VRService = game:GetService("VRService")
VRService:SetTouchpadMode(Enum.VRTouchpad.Left, Enum.VRTouchpadMode.Touch)
Eventos
NavigationRequested
Parâmetros
Amostras de código
local VRService = game:GetService("VRService")
VRService.TouchpadModeChanged:Connect(function(cframe, inputUserCFrame)
print(inputUserCFrame.Name .. " made request with CFrame: " .. cframe)
end)
TouchpadModeChanged
Parâmetros
Amostras de código
local VRService = game:GetService("VRService")
VRService.NavigationRequested:Connect(function(pad, mode)
print(pad.Name .. " Touchpad changed to state: " .. mode.Name)
end)
UserCFrameChanged
Parâmetros
Amostras de código
local VRService = game:GetService("VRService")
VRService.UserCFrameChanged:Connect(function(userCFrameType, cframeValue)
print(userCFrameType.Name .. " changed. Updated Frame: " .. tostring(cframeValue))
end)
UserCFrameEnabled
Parâmetros
Amostras de código
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)