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

XRRaycastSubsystem.Raycast

Switch to Manual
public bool Raycast (Vector3 screenPoint, List<XRRaycastHit> hitResults, Experimental.XR.TrackableType trackableTypeMask);

Parameters

screenPointThe screen point from which to cast.
hitResultsThe resulting list of XRRaycastHit.
trackableTypeMaskAn optional mask of TrackableType to raycast against.

Description

Casts a ray from a screen point against selected trackables (e.g., planes and feature points).

Casts a ray from a screen position against selected trackables in the Scene. trackableTypeMask defaults to TrackableType.All.

using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Experimental.XR;

public class RaycastExample : MonoBehaviour { public XRRaycastSubsystem xrRaycast; private List<XRRaycastHit> m_RaycastHits = new List<XRRaycastHit>();

private 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);

Parameters

rayThe Ray to use.
depthSubsystemThe XRDepthSubsystem to raycast against. May be null.
planeSubsystemThe XRPlaneSubsystem to raycast against. May be null.
hitResultsThe resulting list of XRRaycastHit.
trackableTypeMaskAn optional mask of TrackableType to raycast against.
pointCloudRaycastAngleInDegreesWhen raycasting against feature points, cast a cone with this angle.

Description

Casts a ray using ray against selected trackables (e.g., planes and feature points).

Use this method to raycast against selected trackables in the Scene. trackableTypeMask defaults to TrackableType.All.

When raycasting against TrackableType.FeaturePoint, Unity uses a cone defined by pointCloudRaycastAngleInDegrees. It defaults to 5 degrees.