XRSession: phương thức requestHitTestSource()
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 requestHitTestSource() của giao diện XRSession trả về một Promise resolve với một đối tượng XRHitTestSource có thể được truyền cho XRFrame.getHitTestResults().
Cú pháp
requestHitTestSource(options)
Tham số
options-
Một đối tượng chứa các tùy chọn cấu hình, cụ thể:
space-
XRSpacesẽ được theo dõi bởi nguồn 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 XRHitTestSource.
Ngoại lệ
Thay vì ném ngoại lệ thực sự, requestHitTestSource() 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
Để 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.getHitTestResults() để lấy kết quả.
const xrSession = navigator.xr.requestSession("immersive-ar", {
requiredFeatures: ["local", "hit-test"],
});
let hitTestSource = null;
xrSession
.requestHitTestSource({
space: viewerSpace, // obtained from xrSession.requestReferenceSpace("viewer");
offsetRay: new XRRay({ y: 0.5 }),
})
.then((viewerHitTestSource) => {
hitTestSource = viewerHitTestSource;
});
// frame loop
function onXRFrame(time, xrFrame) {
let hitTestResults = xrFrame.getHitTestResults(hitTestSource);
// do things with the hit test results
}
Thông số kỹ thuật
| Thông số kỹ thuật |
|---|
| WebXR Hit Test Module> # dom-xrsession-requesthittestsource> |