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

Parameters

origin射线在世界坐标系中的起点。
direction射线的方向。
maxDistance射线应检查碰撞的最大距离。
layerMask 层遮罩,用于在投射射线时有选择地忽略碰撞体。
queryTriggerInteraction指定该查询是否应该命中触发器。

Returns

bool 如果射线与任何碰撞体相交,返回 true,否则为 false。

Description

Casts a ray, from point origin, in direction direction, of length maxDistance, against all colliders in the Scene.

You may optionally provide a LayerMask, to filter out any Colliders you aren't interested in generating collisions with. Specifying queryTriggerInteraction allows you to control whether or not Trigger colliders generate a hit, or whether to use the global Physics.queriesHitTriggers setting.

该示例创建一个简单的射线投射 - 从对象的当前位置向前投影,延伸 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);

Parameters

origin射线在世界坐标系中的起点。
direction射线的方向。
hitInfo如果返回 true,则 hitInfo 将包含有关碰撞体的撞击位置的更多信息(另请参阅:RaycastHit)。
maxDistance射线应检查碰撞的最大距离。
layerMask 层遮罩,用于在投射射线时有选择地忽略碰撞体。
queryTriggerInteraction指定该查询是否应该命中触发器。

Returns

bool 如果射线与任何碰撞体相交,返回 true,否则为 false。

Description

Casts a ray, from point origin, in direction direction, of length maxDistance, against all colliders in the Scene.

This method generates no garbage.

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

Parameters

origin光线的起点和方向。
direction射线的方向。
raycastHits用于存储命中对象的缓冲区。
maxDistance从射线起点开始,允许射线命中的最大距离。
layerMask 层遮罩,用于在投射射线时有选择地忽略碰撞体。
queryTriggerInteraction存储到 results 缓冲区的命中对象数量。

Returns

int 如果射线与任何碰撞体相交,返回 true,否则为 false。

Description

Casts a ray, from point origin, in direction direction, of length maxDistance, against all colliders in the Scene.

This method generates no garbage.