position | 球体的中心。 |
radius | 球体的半径。 |
results | 用于存储结果的缓冲区。 |
layerMask | 一个 层遮罩 定义查询中要包含的碰撞体的层。 |
queryTriggerInteraction | 指定此查询是否应命中触发器。 |
int 返回存储到 results
缓冲区中的碰撞体数量。
计算并存储与球体接触或位于球体内部的碰撞体到提供的缓冲区中。
如果缓冲区空间不足,则不会尝试扩展缓冲区。当缓冲区已满时,会返回缓冲区的长度。类似于 Physics.OverlapSphere,但不会产生垃圾。其他资源:Physics.AllLayers。
using UnityEngine; using System.Collections;
public class ExampleClass : MonoBehaviour { void ExplosionDamage(Vector3 center, float radius) { int maxColliders = 10; Collider[] hitColliders = new Collider[maxColliders]; int numColliders = Physics.OverlapSphereNonAlloc(center, radius, hitColliders); for (int i = 0; i < numColliders; i++) { hitColliders[i].SendMessage("AddDamage"); } } }
其他资源:层遮罩,特别是“选择性地投射射线”部分,其中包含关于层遮罩的详细示例。