XRTransientInputHitTestResult

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

Giao diện XRTransientInputHitTestResult của WebXR Device API chứa một mảng kết quả kiểm tra va chạm (hit test) cho đầu vào tạm thời, được nhóm theo nguồn đầu vào.

Bạn có thể lấy một mảng các đối tượng XRHitTestResult cho một khung bằng cách gọi XRFrame.getHitTestResultsForTransientInput().

Thuộc tính phiên bản

XRTransientInputHitTestResult.inputSource Read only Experimental

Đại diện cho XRInputSource đã được sử dụng để tính toán mảng results.

XRTransientInputHitTestResult.results Read only Experimental

Đại diện cho một mảng các đối tượng XRHitTestResult chứa kết quả kiểm tra va chạm cho nguồn đầu vào, được sắp xếp theo khoảng cách dọc theo tia được sử dụng để thực hiện kiểm tra va chạm, với kết quả gần nhất ở vị trí 0.

Phương thức phiên bản

Không có.

Ví dụ

Truy cập kết quả kiểm tra va chạm đầu vào tạm thời

Hai mảng được sử dụng để truy cập kết quả kiểm tra va chạm đầu vào tạm thời. Đầu tiên, bạn lấy một mảng các đối tượng XRTransientInputHitTestResult bằng cách gọi XRFrame.getHitTestResultsForTransientInput(). Thứ hai, để truy cập các đối tượng XRHitTestResult thực sự cho một nguồn đầu vào, bạn tham chiếu thuộc tính results trên một trong các đối tượng XRTransientInputHitTestResult.

js
// frame loop
function onXRFrame(time, xrFrame) {
  let hitTestResults = xrFrame.getHitTestResultsForTransientInput(
    transientHitTestSource,
  );

  hitTestResults.forEach((resultsPerInputSource) => {
    resultsPerInputSource.results.forEach((hitTest) => {
      // do something with the hit test
      hitTest.getPose(referenceSpace);
    });
  });
}

Lọc nguồn đầu vào

Thuộc tính inputSource cho phép bạn lọc kết quả kiểm tra va chạm theo nguồn đầu vào.

js
// frame loop
function onXRFrame(time, xrFrame) {
  let hitTestResults = xrFrame.getHitTestResultsForTransientInput(
    transientHitTestSource,
  );

  hitTestResults.forEach((resultsPerInputSource) => {
    if (resultsPerInputSource.inputSource === myPreferredInputSource) {
      // act on hit test results from the preferred input source
    }
  });
}

Thông số kỹ thuật

Specification
WebXR Hit Test Module
# xr-transient-input-hit-test-result-interface

Tương thích trình duyệt

Xem thêm