Experimental: this API is experimental and might be changed or removed in the future.

XRRaycastSubsystem.Raycast

切换到手册
public bool Raycast (Vector3 screenPoint, List<XRRaycastHit> hitResults, Experimental.XR.TrackableType trackableTypeMask);

参数

screenPoint屏幕上的投射起始点。
hitResults生成的 XRRaycastHit 列表。
trackableTypeMask要对其投射射线的 TrackableType 的可选遮罩。

描述

从屏幕点对选定的可跟踪信息(例如,平面和特征点)投射射线。

从屏幕位置对场景中选定的可跟踪信息投射射线。trackableTypeMask 默认为 TrackableType.All

using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Experimental.XR;
public class RaycastExample : MonoBehaviour
{
    public XRRaycast xrRaycast;
    private List<XRRaycastHit> m_RaycastHits = new List<XRRaycastHit>();
    void Update()
    {
        if (Input.GetMouseButton(0))
        {
            // Only raycast against feature points and the exact plane boundries
            var hitMask = TrackableType.FeaturePoint | TrackableType.PlaneWithinPolygon;
            if (xrRaycast.Raycast(Input.mousePosition, m_RaycastHits, hitMask))
            {
                Debug.Log("Hit something!");
            }
        }
    }
}

public static void Raycast (Ray ray, Experimental.XR.XRDepthSubsystem depthSubsystem, Experimental.XR.XRPlaneSubsystem planeSubsystem, List<XRRaycastHit> hitResults, Experimental.XR.TrackableType trackableTypeMask, float pointCloudRaycastAngleInDegrees);

参数

ray要使用的 Ray
depthSubsystem要对其投射射线的 XRDepthSubsystem。可能为 /null/。
planeSubsystem要对其投射射线的 XRPlaneSubsystem。可能为 /null/。
hitResults生成的 XRRaycastHit 列表。
trackableTypeMask要对其投射射线的 TrackableType 的可选遮罩。
pointCloudRaycastAngleInDegrees当对特征点投射射线时,使用此角度投射锥体。

描述

使用 ray 对选定的可跟踪信息(例如,平面和特征点)投射射线。

使用此方法对场景中选定的可跟踪信息投射射线。trackableTypeMask 默认为 TrackableType.All

当对 TrackableType.FeaturePoint 投射射线时,Unity 将使用由 pointCloudRaycastAngleInDegrees 定义的锥体。默认为 5 度。