学习
引擎类
VRService
无法创建
服务

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处


代码示例
虚拟现实服务
local VRService = game:GetService("VRService")
local part = workspace.Part
local handOffset = VRService:GetUserCFrame(Enum.UserCFrame.LeftHand)
-- 考虑头部缩放
handOffset = handOffset.Rotation + handOffset.Position * workspace.CurrentCamera.HeadScale
part.CFrame = workspace.CurrentCamera.CFrame * handOffset

API 参考
属性
AutomaticScaling
读取并联
功能: Input
VRService.AutomaticScaling:Enum.VRScaling

AvatarGestures
读取并联
功能: Input
VRService.AvatarGestures:boolean

ControllerModels
读取并联
功能: Input
VRService.ControllerModels:Enum.VRControllerModelMode

FadeOutViewOnCollision
读取并联
功能: Input
VRService.FadeOutViewOnCollision:boolean

GuiInputUserCFrame
未复制
读取并联
功能: Input
VRService.GuiInputUserCFrame:Enum.UserCFrame
代码示例
VRService.GuiInputUserCFrame
local VRService = game:GetService("VRService")
if VRService.VREnabled then
print(VRService.GuiInputUserCFrame.Name)
else
print("没有检测到VR设备!")
end

LaserPointer
读取并联
功能: Input
VRService.LaserPointer:Enum.VRLaserPointerMode

ThirdPersonFollowCamEnabled
只读
未复制
读取并联
功能: Input
VRService.ThirdPersonFollowCamEnabled:boolean

VREnabled
只读
未复制
读取并联
功能: Input
VRService.VREnabled:boolean
代码示例
虚拟现实头部追踪
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
-- 设置初始 CFrame
head.CFrame = VRService:GetUserCFrame(Enum.UserCFrame.Head)
-- 跟踪 VR 头戴设备的移动并为角色的头部镜像
VRService.UserCFrameChanged:Connect(TrackHead)
end

方法
GetTouchpadMode
功能: Input
VRService:GetTouchpadMode(pad:Enum.VRTouchpad):Enum.VRTouchpadMode
参数
代码示例
虚拟现实服务:获取触摸板模式
local VRService = game:GetService("VRService")
-- 获取左侧触摸板的当前模式
VRService:GetTouchpadMode(Enum.VRTouchpad.Left)

GetUserCFrame
功能: Input
VRService:GetUserCFrame(type:Enum.UserCFrame):CFrame
参数
返回
代码示例
VRService:获取用户坐标系
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)
-- 考虑到头部缩放
handOffset = handOffset.Rotation + handOffset.Position * camera.HeadScale
part.CFrame = camera.CFrame * handOffset

GetUserCFrameEnabled
功能: Input
VRService:GetUserCFrameEnabled(type:Enum.UserCFrame):boolean
参数
返回
代码示例
VRService:GetUserCFrameEnabled
local VRService = game:GetService("VRService")
local isEnabled = VRService:GetUserCFrameEnabled(Enum.UserCFrame.Head)
if isEnabled then
print("VR 设备已启用!")
else
print("VR 设备已禁用!")
end

RecenterUserHeadCFrame
功能: Input
VRService:RecenterUserHeadCFrame():()
返回
()
代码示例
VRService:重新居中用户头部CFrame
local VRService = game:GetService("VRService")
-- 重新居中用户的头部CFrame
VRService:RecenterUserHeadCFrame()

RequestNavigation
功能: Input
VRService:RequestNavigation(
cframe:CFrame, inputUserCFrame:Enum.UserCFrame
):()
参数
cframe:CFrame
inputUserCFrame:Enum.UserCFrame
返回
()
代码示例
VRService:请求导航
local VRService = game:GetService("VRService")
local destination = workspace:FindFirstChild("NavigationDestination")
VRService:RequestNavigation(Enum.UserCFrame.Head, destination.CFrame)

SetTouchpadMode
功能: Input
VRService:SetTouchpadMode(
):()
返回
()
代码示例
VR服务:设置触摸板模式
local VRService = game:GetService("VRService")
-- 设置触摸板模式为触控
VRService:SetTouchpadMode(Enum.VRTouchpad.Left, Enum.VRTouchpadMode.Touch)

活动
NavigationRequested
功能: Input
VRService.NavigationRequested(
cframe:CFrame, inputUserCFrame:Enum.UserCFrame
参数
cframe:CFrame
inputUserCFrame:Enum.UserCFrame
代码示例
VRService.NavigationRequested
local VRService = game:GetService("VRService")
VRService.NavigationRequested:Connect(function(cframe, inputUserCFrame)
print(inputUserCFrame.Name .. " 以 CFrame 发送请求: " .. cframe)
end)

TouchpadModeChanged
功能: Input
VRService.TouchpadModeChanged(
代码示例
VRService.TouchpadModeChanged
local VRService = game:GetService("VRService")
VRService.TouchpadModeChanged:Connect(function(pad, mode)
print(pad.Name .. " 触控板状态变更为: " .. mode.Name)
end)

UserCFrameChanged
功能: Input
VRService.UserCFrameChanged(
参数
value:CFrame
代码示例
VRService.UserCFrameChanged
local VRService = game:GetService("VRService")
VRService.UserCFrameChanged:Connect(function(userCFrameType, cframeValue)
print(userCFrameType.Name .. " 更改了。更新的帧: " .. tostring(cframeValue))
end)

UserCFrameEnabled
功能: Input
VRService.UserCFrameEnabled(
type:Enum.UserCFrame, enabled:boolean
参数
enabled:boolean
代码示例
VRService.UserCFrameEnabled
local VRService = game:GetService("VRService")
VRService.UserCFrameEnabled:Connect(function(type, enabled)
if enabled then
print(type.Name .. " 被启用!")
else
print(type.Name .. " 被禁用!")
end
end)

©2026 Roblox Corporation、Roblox、Roblox 标志及 Powering Imagination 是我们在美国及其他国家或地区的注册与未注册商标。