XRSession: phương thức requestHitTestSourceForTransientInput()
Khả dụng hạn chế
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
Phương thức requestHitTestSourceForTransientInput() của giao diện XRSession trả về một Promise resolve với một đối tượng XRTransientInputHitTestSource có thể được truyền cho XRFrame.getHitTestResultsForTransientInput().
Cú pháp
requestHitTestSourceForTransientInput(options)
Tham số
options-
Một đối tượng chứa các tùy chọn cấu hình, cụ thể:
profile-
Một chuỗi chỉ định tên hồ sơ đầu vào của nguồn đầu vào tạm thời sẽ được sử dụng để tính toán kết quả kiểm tra va chạm.
entityTypesOptional-
Một
Arraychỉ định các loại thực thể được sử dụng để tạo nguồn kiểm tra va chạm. Nếu không có loại thực thể nào được chỉ định, mảng mặc định là một phần tử duy nhất với loạiplane. Các loại có thể:point: Tính toán kết quả kiểm tra va chạm dựa trên các điểm đặc trưng được phát hiện.plane: Tính toán kết quả kiểm tra va chạm dựa trên các mặt phẳng thực tế được phát hiện.mesh: Tính toán kết quả kiểm tra va chạm dựa trên các lưới được phát hiện.
offsetRayOptional-
Đối tượng
XRRaysẽ được sử dụng để thực hiện kiểm tra va chạm. Nếu không có đối tượngXRRaynào được cung cấp, một đối tượngXRRaymới được xây dựng mà không có tham số nào.
Giá trị trả về
Một Promise resolve với một đối tượng XRTransientInputHitTestSource.
Ngoại lệ
Thay vì ném ngoại lệ thực sự, requestHitTestSourceForTransientInput() từ chối promise được trả về với một DOMException, cụ thể là một trong các ngoại lệ sau:
NotSupportedErrorDOMException-
Được ném nếu
hit-testkhông phải là tính năng đã bật trongXRSystem.requestSession(). InvalidStateErrorDOMException-
Được ném nếu phiên đã kết thúc.
NotAllowedErrorDOMException-
Được ném nếu có số lượng yêu cầu không hợp lý. Một số tác nhân người dùng có thể giới hạn sử dụng vì lý do bảo mật.
Ví dụ
>Yêu cầu một nguồn kiểm tra va chạm tạm thời
Để yêu cầu một nguồn kiểm tra va chạm, hãy bắt đầu một XRSession với tính năng phiên hit-test đã bật. Tiếp theo, cấu hình nguồn kiểm tra va chạm và lưu trữ nó để sử dụng sau trong vòng lặp khung hình và gọi XRFrame.getHitTestResultsForTransientInput() để lấy kết quả.
const xrSession = navigator.xr.requestSession("immersive-ar", {
requiredFeatures: ["local", "hit-test"],
});
let transientHitTestSource = null;
xrSession
.requestHitTestSourceForTransientInput({
profile: "generic-touchscreen",
offsetRay: new XRRay(),
})
.then((touchScreenHitTestSource) => {
transientHitTestSource = touchScreenHitTestSource;
});
// frame loop
function onXRFrame(time, xrFrame) {
let hitTestResults = xrFrame.getHitTestResultsForTransientInput(
transientHitTestSource,
);
// do things with the transient hit test results
}
Thông số kỹ thuật
| Thông số kỹ thuật |
|---|
| WebXR Hit Test Module> # dom-xrsession-requesthittestsourcefortransientinput> |