public virtual void RemoveInstancesInsideCollider(Collider collider, float offset, List <GPUInstancerPrototype> prototypeFilter = null) { if (runtimeDataList != null) { foreach (GPUInstancerRuntimeData rd in runtimeDataList) { if (prototypeFilter != null && !prototypeFilter.Contains(rd.prototype)) { continue; } if (collider is BoxCollider) { GPUInstancerUtility.RemoveInstancesInsideBoxCollider(rd.transformationMatrixVisibilityBuffer, (BoxCollider)collider, offset); } else if (collider is SphereCollider) { GPUInstancerUtility.RemoveInstancesInsideSphereCollider(rd.transformationMatrixVisibilityBuffer, (SphereCollider)collider, offset); } else if (collider is CapsuleCollider) { GPUInstancerUtility.RemoveInstancesInsideCapsuleCollider(rd.transformationMatrixVisibilityBuffer, (CapsuleCollider)collider, offset); } else { GPUInstancerUtility.RemoveInstancesInsideBounds(rd.transformationMatrixVisibilityBuffer, collider.bounds.center, collider.bounds.extents, offset); } } } }
public virtual void RemoveInstancesInsideBounds(Bounds bounds, float offset, List <GPUInstancerPrototype> prototypeFilter = null) { if (runtimeDataList != null) { foreach (GPUInstancerRuntimeData rd in runtimeDataList) { if (prototypeFilter != null && !prototypeFilter.Contains(rd.prototype)) { continue; } GPUInstancerUtility.RemoveInstancesInsideBounds(rd.transformationMatrixVisibilityBuffer, bounds.center, bounds.extents, offset); } } }