这是用
Physics.OverlapSphere
功能:
void DestroyBlocksWithinRadius(Vector3 center, float radius)
{
Collider[] result = Physics.OverlapSphere(center, radius);
for (int i = 0; i < result.Length; i++)
Destroy(result[i].gameObject);
}
如果没有碰撞器,则通过标记查找并检查距离手动执行:
void DestroyBlocksWithinRadius(Vector3 center, float radius)
{
GameObject[] result = GameObject.FindGameObjectsWithTag("Voxels");
for (int i = 0; i < result.Length; i++)
{
Transform tempTrans = result[i].transform;
float distanceSqr = (center - tempTrans.position).sqrMagnitude;
if (distanceSqr < radius)
Destroy(tempTrans.gameObject);
}
}