ray | 光线的起点和方向。 |
results | 用于存储命中对象的缓冲区。 |
maxDistance | 从射线起点开始,允许射线命中的最大距离。 |
layerMask | 层遮罩,用于在投射射线时有选择地忽略碰撞体。 |
queryTriggerInteraction | 指定该查询是否应该命中触发器。 |
int
存储到 results
缓冲区的命中对象数量。
Cast a ray through the Scene and store the hits into the buffer.
与 Physics.RaycastAll 类似,但不产生任何垃圾。
origin | 光线的起点和方向。 |
results | 用于存储命中对象的缓冲区。 |
direction | 射线的方向。 |
maxDistance | 从射线起点开始,允许射线命中的最大距离。 |
layermask | 层遮罩,用于在投射射线时有选择地忽略碰撞体。 |
queryTriggerInteraction | 指定该查询是否应该命中触发器。 |
int
存储到 results
缓冲区的命中对象数量。
Cast a ray through the Scene and store the hits into the buffer.
using UnityEngine;
public class ExampleClass : MonoBehaviour { // The size of the array determines how many raycasts will occur RaycastHit[] m_Results = new RaycastHit[5];
void Update() { // Set the layer mask to all layers var layerMask = ~0;
// Do any of the rays hit? if (Physics.RaycastNonAlloc(transform.position, transform.forward, m_Results, Mathf.Infinity, layerMask) > 0) { foreach (var result in m_Results) { // Check for null since some array spots might be if (result.collider != null) { Debug.Log("Hit " + result.collider.gameObject.name); } } } else { Debug.Log("Did not hit"); } } }