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