VRService

Hiển Thị Bản Đã Lỗi Thời

*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.

Không Thể Tạo
Dịch Vụ

VRService chịu trách nhiệm xử lý các tương tác giữa Roblox và VR (VR). Phương pháp, tính năng và sự kiện của nó giúp bạn cung cấp trải nghiệm tốt nhất cho người dùng cuối cùng tìm kiếm trải nghiệm Roblox trên các thiết bị VR.

Xem Hướng dẫn VR để biết thêm thông tin về việc xuất bản một trải nghiệm cho các thiết bị VR.

Mẫu mã

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

Tóm Tắt

Thuộc Tính

Phương Pháp

Sự Kiện

Thuộc Tính

AutomaticScaling

Đọc Song Song

Khi đặt để Enum.VRScaling.World , Camera.HeadScale điều chỉnh để cho phù hợp kích thước của thế giới được nhìn từ góc nhìn của avatar. Một người có avatar nhỏ sẽ nhận thức các vật đến xung quanh họ lớn hơn một ngư

AvatarGestures

Đọc Song Song

Khi đặt thành true, một người chơi VR sẽ có thể hoạt họa tay và đầu của họ bằng điều khiển và tai nghecủa họ.

Điều này phải được cài đặt trên máy chủ.

Đọc Song Song

FadeOutViewOnCollision

Đọc Song Song

Khi đúng, một VR player's view fades to black khi đầu của họ va chạm với một đối tượng. This property防止 người chơi có thể nhìn thấy qua tường trong VR. Giá trị mặc định là true.

GuiInputUserCFrame

Không Sao Chép
Đọc Song Song

Đặ性 này mô tả những gì Enum.UserCFrame được trách nhiệm đầu vào trong VR. Ví ví dụ / trường hợp, nếu một chiếc VR headset có trách nhiệm, giá trị của thuộc tính này sẽ là Enum.UserCFrame.Head .

Để kiểm tra xem Roblox phát hiện bất kỳ thiết bị VR nào, có trách nhiệm cho VR, bạn có thể kiểm tra thuộc tính VREnabled .

Mẫu mã

VRService.GuiInputUserCFrame

local VRService = game:GetService("VRService")
if VRService.VREnabled then
print(VRService.GuiInputUserCFrame.Name)
else
print("No VR device detected!")
end
Đọc Song Song

ThirdPersonFollowCamEnabled

Chỉ Đọc
Không Sao Chép
Đọc Song Song

VREnabled

Chỉ Đọc
Không Sao Chép
Đọc Song Song

Đặ性 này mô tả ap liệu người dùng có sử dụng thiết bị VR hay không.

Nếu cả VR điện thoại được kích hoạt, bạn có thể tương tác với vị trí và di chuyển của nó thông qua các phương thức như UserInputService:GetUserCFrame() . Bạn cũng có thể reagieren với sự di chuyển của VR điện thoại bằng cách sử dụng sự kiện Class.UserInput


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

Thuộc tính này chỉ được sử dụng trong một LocalScript .

Xem thêm

Mẫu mã

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

Phương Pháp

GetTouchpadMode

Phương thức này trả lại Enum.VRTouchpadMode cho thấy chế độ của một Enum.VRTouchpad được xác định. Phương thức trả lại cho thấy cách người dùng tương tác với touchpad của họ để chơi trò chơi.

Điều này cũng có thể được sử dụng cùng với một số phương pháp và sự kiện VR UserInputService .

Phương thức này chỉ hoạt động khi được sử dụng trong một LocalScript .

Tham Số

Các ô đã được chỉ định VRTouchpad .


Lợi Nhuận

Chế độ của VRTouchpad được xác định.

Mẫu mã

VRService:GetTouchpadMode

local VRService = game:GetService("VRService")
VRService:GetTouchpadMode(Enum.VRTouchpad.Left)

GetUserCFrame

Phương thức này trả về một CFrame mô tả vị trí và hướng của một thiết bị VR được đề xuất như một khoảng cách từ một điểm trong không gian thế giới thực. This method should be used when implementing VR compatibility into a game to obtain and track the movement of a connected VR device.

Bằng cách sử dụng phương pháp này, các nhà phát triển có thể tích hợp các tính năng như đổi vị trí nhân vật trong trò chơi người dùng tương ứng với vị trí của thiết bị VR kết nối. Điều này có thể đ

VRService cũng cung cấp một sự kiện UserCFrameChanged tự động khi CFrame của thiết bị VR kết nối thay đổi, miễn là nó được sử dụng trong một 0> Class.LocalScript0> .

Phương thức này chỉ hoạt động khi được sử dụng trong một LocalScript .

Tham Số

Các UserCFrame được xác định.


Lợi Nhuận

Mẫu mã

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

Phương thức này trả về true nếu các thiết bị VR ảo tưởng được đề xuất (VR) có sẵn để lắng nghe. Nó có thể được sử dụng để xác định có phải thiết bị VR được đề xuất, chẳng hạn như Enum.UserCFrame.Head, kết nối với trò chơich

Điều này cũng có thể được sử dụng cùng với một số phương pháp và sự kiện VR UserInputService .

Phương thức này chỉ hoạt động khi được sử dụng trong một LocalScript .

Tham Số

thiết bịVR được xác định.


Lợi Nhuận

Một biến để đại diện cho VR được kích hoạt ( true ) hoặc tắt ( false )

Mẫu mã

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

Phương thức này đặt lại trung tâm của CFrame của đầu người dùng đến vị trí hiện tại của VR tai ngheđang được mặc bởi người dùng. Nó có thể được sử dụng để đảm bảo rằng đầu người trong trò chơi của người dùng được

Điều này hoạt động tương tự như UserInputService:RecenterUserHeadCFrame() .

Phương thức này chỉ hoạt động khi được sử dụng trong một LocalScript .


Lợi Nhuận

void

Mẫu mã

VRService:RecenterUserHeadCFrame

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

RequestNavigation

void

Phương thức này yêu cầu điều hướng đến CFrame được đề cập ở trên bằng cách sử dụng Enum.UserCFrame như một điểm xuất phát cho cảnh nhìn ảo tưởng. Nó có thể được sử dụng để tích hợp thự

VRService có một sự kiện tương tự, NavigationRequested, được sử dụng để phát hiện các yêu cầu như vậy. Điều này cũng có thể được sử dụng kết hợp với một số phương pháp và sự kiện VR của Class.UserInputService .

Phương thức này chỉ hoạt động khi được sử dụng trong một LocalScript .

Tham Số

cframe: CFrame

Các điểm CFrame được xác định.

inputUserCFrame: Enum.UserCFrame

Thiết bị VR mà hệ thống điều hướng được yêu cầu.


Lợi Nhuận

void

Mẫu mã

VRService:RequestNavigation

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

SetTouchpadMode

void

Phương thức này đặt chế độ của Enum.VRTouchpad đến Enum.VRTouchpadMode để thay đổi chế độ của người dùng để người dùng tương tác với trò chơi khác bằng cách sử dụng cảm ứng.

Điều này cũng có thể được sử dụng cùng với một số phương pháp và sự kiện VR UserInputService .

Phương thức này chỉ hoạt động khi được sử dụng trong một LocalScript .

Tham Số

The specified VRTouchpad you want to set the mode of.

Chế độ bạn muốn đặt VRTouchpad của bạn.


Lợi Nhuận

void

Mẫu mã

VRService:SetTouchpadMode

local VRService = game:GetService("VRService")
VRService:SetTouchpadMode(Enum.VRTouchpad.Left, Enum.VRTouchpadMode.Touch)

Sự Kiện

Sự kiện này bắt đầu khi yêu cầu điều hướng từ VRService cho một thiết bị VR đặc định. Nó bắt đầu với một Enum.UserCFrame坐标 và đề nghị CFrame để cho thiết bị yêu cầu

Sự kiện này có thể được sử dụng cùng với các sự kiện dịch vụ UserInputService và phương pháp.

Vì sự kiện này chỉ được kích hoạt ở địa phương, nó chỉ có thể được sử dụng trong một LocalScript .

Tham Số

cframe: CFrame

Các điểm CFrame yêu cầu.

inputUserCFrame: Enum.UserCFrame

Chỉ thị thiết bị VR mà hệ thống đang yêu cầu.


Mẫu mã

VRService.NavigationRequested

local VRService = game:GetService("VRService")
VRService.TouchpadModeChanged:Connect(function(cframe, inputUserCFrame)
print(inputUserCFrame.Name .. " made request with CFrame: " .. cframe)
end)

TouchpadModeChanged

Sự kiện này bắt đầu khi Enum.VRTouchpadMode của một Enum.VRTouchpad được thay đổi. Bạn có thể sử dụng sự kiện này để theo dõi tình trạng của các thiết bị VR kết nối qua client của người dùng.

Sự kiện này có thể được sử dụng cùng với các sự kiện dịch vụ UserInputService và phương pháp.

Vì sự kiện này chỉ được kích hoạt ở địa phương, nó chỉ có thể được sử dụng trong một LocalScript .

Tham Số

Cảm ứng đã thay đổi chế độ.

Chế độ mới.


Mẫu mã

VRService.TouchpadModeChanged

local VRService = game:GetService("VRService")
VRService.NavigationRequested:Connect(function(pad, mode)
print(pad.Name .. " Touchpad changed to state: " .. mode.Name)
end)

UserCFrameChanged

Sự kiện này được tích hợp khi một Enum.UserCFrame được thay đổi, ví dụ khi người dùng di chuyển một thiết bị VR kết nối. Nó có thể được sử dụng cùng v

Vì sự kiện này chỉ được kích hoạt ở địa phương, nó chỉ có thể được sử dụng trong một LocalScript .

Tham Số

Loại thiết bị VR thay đổi.

value: CFrame

Các điểm CFrame của VR đã được cập nhật sau khi thay đổi.


Mẫu mã

VRService.UserCFrameChanged

local VRService = game:GetService("VRService")
VRService.UserCFrameChanged:Connect(function(userCFrameType, cframeValue)
print(userCFrameType.Name .. " changed. Updated Frame: " .. tostring(cframeValue))
end)

UserCFrameEnabled

Sự kiện này bắt đầu khi một Enum.UserCFrame được bật hoặc tắt. Nó có thể được sử dụng cùng với GetUserCFrameEnabled() để theo dõi xem một Class

Vì sự kiện này chỉ được kích hoạt ở địa phương, nó chỉ có thể được sử dụng trong một LocalScript .

Tham Số

The UserCFrame getting enabled or disabled.

enabled: bool

Một biểu tượng cho biết có phải bật UserCFrame hay không ( true ) hoặc bị tắt false .


Mẫu mã

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)