版本:Unity 6 (6000.0)
语言英语
  • C#

PhysicsScene.Raycast

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。尽管我们无法接受所有的提交,但我们会阅读用户提出的每条建议,并酌情更新。

关闭

提交失败

由于某种原因,无法提交您的建议更改。请在几分钟后<a>重试</a>。感谢您花时间帮助我们提高 Unity 文档的质量。

关闭

取消

声明

public bool Raycast(Vector3 origin, Vector3 direction, float maxDistance = Mathf.Infinity, int layerMask = Physics.DefaultRaycastLayers, QueryTriggerInteraction queryTriggerInteraction = QueryTriggerInteraction.UseGlobal);

参数

origin 世界坐标中的射线起点。
direction 射线方向。
maxDistance 射线检查碰撞的最大距离。
layerMask 投放射线时用来选择性忽略碰撞体的图层掩码
queryTriggerInteraction 指定此查询是否应命中触发器。

返回

bool 如果射线与碰撞体相交,则为 True,否则为 false。

说明

从点 origin 投射一条射线,沿方向 direction,长度为 maxDistance ,并与场景中的所有碰撞体相对照。

您可以选择提供一个图层掩码,以筛选出您不感兴趣的用于生成碰撞的任何碰撞体。指定 queryTriggerInteraction 可让您控制是否生成命中触发器碰撞体,或者是否使用全局Physics.queriesHitTriggers设置。

本示例创建一条简单的射线,从对象当前位置向前投影,向外延伸 10 个单位。

using UnityEngine;

public class ExampleClass : MonoBehaviour { void FixedUpdate() { Vector3 fwd = transform.TransformDirection(Vector3.forward);

if (Physics.Raycast(transform.position, fwd, 10)) print("There is something in front of the object!"); } }

声明

public bool Raycast(Vector3 origin, Vector3 direction, out RaycastHit hitInfo, float maxDistance = Mathf.Infinity, int layerMask = Physics.DefaultRaycastLayers, QueryTriggerInteraction queryTriggerInteraction = QueryTriggerInteraction.UseGlobal);

参数

origin 世界坐标中的射线起点。
direction 射线方向。
hitInfo 如果返回 true,hitInfo 将包含有关碰撞体命中位置的更多信息。(其他资源:RaycastHit)。
maxDistance 射线检查碰撞的最大距离。
layerMask 投放射线时用来选择性忽略碰撞体的图层掩码
queryTriggerInteraction 指定此查询是否应命中触发器。

返回

bool 如果射线与碰撞体相交,则为 True,否则为 false。

说明

从点 origin 投射一条射线,沿方向 direction,长度为 maxDistance ,并与场景中的所有碰撞体相对照。

此方法不生成垃圾。

using UnityEngine;
public class RaycastExample : MonoBehaviour
{
    void FixedUpdate()
    {
        RaycastHit hit;

if (Physics.Raycast(transform.position, -Vector3.up, out hit)) print("Found an object - distance: " + hit.distance); } }

声明

public int Raycast(Vector3 origin, Vector3 direction, RaycastHit[] raycastHits, float maxDistance = Mathf.Infinity, int layerMask = Physics.DefaultRaycastLayers, QueryTriggerInteraction queryTriggerInteraction = QueryTriggerInteraction.UseGlobal);

参数

origin 射线起点和方向。
direction 射线方向。
raycastHits 用于存储命中结果的缓冲区。
maxDistance 射线命中点可允许的最大距离。
layerMask 一个层级遮罩,在投射射线时用于有选择地忽略碰撞器。
queryTriggerInteraction 存储在results缓冲区的命中次数。

返回

int 射线与碰撞器相交为真,否则为假。

说明

从点 origin 投射一条射线,沿方向 direction,长度为 maxDistance ,并与场景中的所有碰撞体相对照。

此方法不生成垃圾。