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

参数

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

描述

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

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

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

Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961