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!"); } }
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); } }
origin | 射线起点和方向。 |
direction | 射线方向。 |
raycastHits | 用于存储命中结果的缓冲区。 |
maxDistance | 射线命中点可允许的最大距离。 |
layerMask | 一个层级遮罩,在投射射线时用于有选择地忽略碰撞器。 |
queryTriggerInteraction | 存储在results 缓冲区的命中次数。 |
int 射线与碰撞器相交为真,否则为假。
从点 origin
投射一条射线,沿方向 direction
,长度为 maxDistance
,并与场景中的所有碰撞体相对照。
此方法不生成垃圾。