Beispiel #1
0
 public IEnumerable <GridEntity> Query()
 {
     if (isBox)
     {
         var h = height * 0.5f;
         var w = width * 0.5f;
         //posicion inicial --> esquina superior izquierda de la "caja"
         //posición final --> esquina inferior derecha de la "caja"
         //como funcion para filtrar le damos una que siempre devuelve true, para que no filtre nada.
         return(targetGrid.Query(
                    transform.position + new Vector3(-w, 0, -h),
                    transform.position + new Vector3(w, 0, h),
                    x => true));
     }
     else
     {
         //creo una "caja" con las dimensiones deseadas, y luego filtro segun distancia para formar el círculo
         return(targetGrid.Query(
                    transform.position + new Vector3(-radius, 0, -radius),
                    transform.position + new Vector3(radius, 0, radius),
                    x => {
             var position2d = x - transform.position;
             position2d.y = 0;
             return position2d.sqrMagnitude < radius * radius;
         }));
     }
 }
Beispiel #2
0
 public IEnumerable <GridEntity> Query()
 {
     if (isBox)
     {
         var h = height * 0.5f;
         var w = width * 0.5f;
         //posicion inicial --> esquina superior izquierda de la "caja"
         //posición final --> esquina inferior derecha de la "caja"
         //como funcion para filtrar le damos una que siempre devuelve true, para que no filtre nada.
         return(targetGrid.Query(
                    transform.position + new Vector3(-w, 0, -h),
                    transform.position + new Vector3(w, 0, h),
                    x => true));
     }
     else
     {
         //creo una "caja" con las dimensiones deseadas, y luego filtro segun distancia para formar el círculo
         return(targetGrid.Query(
                    transform.position + new Vector3(-radius, 0, -radius),
                    transform.position + new Vector3(radius, 0, radius),
                    x => {                                     //o sea X seria la posicion del GridEntity que estoy checkeando
             var position2d = x - transform.position;          // obtengo el vector direccion entre el grid entity y mi posicion, o sea seria un vector que apunta desde (0,0) hasta la posicion del GridEntity que estoy checkeando
             position2d.y = 0;                                 //este eje no lo usamos
             return position2d.sqrMagnitude < radius * radius; //de mi vector normalizado obtengo la distancia, y si esa distancia es menor al radio entonces cumple.
         }));
     }
 }
Beispiel #3
0
 public IEnumerable <GridEntity> Query()
 {
     Debug.LogWarning("LA QUERY SE EJECUTA");
     return(targetGrid.Query(
                transform.position + new Vector3(-r, 0, -r),
                transform.position + new Vector3(r, 0, r),
                x => Vector3.Distance(transform.position, x) <= r));
 }
Beispiel #4
0
 public IEnumerable <GridEntity> Query() =>
 grid.Query(
     transform.position + new Vector3(-radius, 0, -radius),
     transform.position + new Vector3(radius, 0, radius),
     x => {
     var position2d = x - transform.position;
     position2d.y   = 0;
     return(position2d.sqrMagnitude < radius * radius);
 });
Beispiel #5
0
    public IEnumerable <GridEntity> Query()
    {
        var h = height * 0.5f;
        var w = width * 0.5f;

        //posicion inicial --> esquina superior izquierda de la "caja"
        //posición final --> esquina inferior derecha de la "caja"
        //como funcion para filtrar le damos una que siempre devuelve true, para que no filtre nada.
        return(targetGrid.Query(
                   transform.position + new Vector3(-w, 0, -h),
                   transform.position + new Vector3(w, 0, h),
                   x => true));
    }