VRService
*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.
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ã
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
Tự động điều chỉnh thước đo trong VR để thích nhất với avatar của người chơi.
Khi đó, một người chơi VR sẽ có thể hoạt hóa tay và đầu của họ bằng cách sử dụng các điều khiển và tai nghe của họ.
Khi đó, VR người chơi's view sẽ biến mất khi đầu chạm vào một thể hiện.
Mô tả những gì Enum.UserCFrame được trách nhiệm về việc nhập dữ liệu trong VR.
Mô tả có sử dụng thiết bị thực tế ảo tưởng của người dùng không.
Phương Pháp
Trả lại VRTouchpadMode cho biết chế độ của một VRTouchpad được xác định.
Trả về một CFrame mô tả vị trí và hướng từ một thiết bị thực tế ảo tượng nào đó trong không gian thế giới thực như một điểm trong không gian thực.
Trả về true nếu Enum.UserCFrame được yêu cầu để lắng nghe.
Lại trung tâm CFrame vào vị trí hiện tại của mũ VR đang được mặc bởi người dùng.
Yêu cầu điều hướng đến CFrame bằng cách sử dụng Enum.UserCFrame làm nguồn cho cả hộp sọ vizualizer.
Đặt chế độ của Enum.VRTouchpad đến Enum.VRTouchpadMode .
Sự Kiện
Đã khởi động khi yêu cầu điều hướng từ VRService .
Lửa nếu Enum.VRTouchpadMode của một Enum.VRTouchpad được thay đổi.
Lửa khi một Enum.UserCFrame được thay đổi.
Làm nổ khi một Enum.UserCFrame được kích hoạt hoặc tắt.
Thuộc Tính
AutomaticScaling
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
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ủ.
ControllerModels
FadeOutViewOnCollision
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
Đặ性 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ã
local VRService = game:GetService("VRService")
if VRService.VREnabled then
print(VRService.GuiInputUserCFrame.Name)
else
print("No VR device detected!")
end
LaserPointer
ThirdPersonFollowCamEnabled
VREnabled
Đặ性 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.VREnabledif isUsingVR thenprint("User is using a VR headset!")elseprint("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ã
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ã
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ã
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ã
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
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
Mẫu mã
local VRService = game:GetService("VRService")
VRService:RecenterUserHeadCFrame()
RequestNavigation
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ố
Thiết bị VR mà hệ thống điều hướng được yêu cầu.
Lợi Nhuận
Mẫu mã
local VRService = game:GetService("VRService")
local destination = workspace:FindFirstChild("NavigationDestination")
VRService:RequestNavigation(Enum.UserCFrame.Head, destination.CFrame)
SetTouchpadMode
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
Mẫu mã
local VRService = game:GetService("VRService")
VRService:SetTouchpadMode(Enum.VRTouchpad.Left, Enum.VRTouchpadMode.Touch)
Sự Kiện
NavigationRequested
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ố
Chỉ thị thiết bị VR mà hệ thống đang yêu cầu.
Mẫu mã
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ã
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.
Mẫu mã
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.
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ã
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)