コード例 #1
0
    public static bool clearRay(Being user, Tile start, Tile end, TileSet mask, bool lastSpaceFree)
    {
        var cols = Physics2D.LinecastAll(new Vector2(start.getX(), start.getY()), new Vector2(end.getX(), end.getY()));
        List <Collider2D> colList = new List <Collider2D>();

        foreach (var item in cols)
        {
            if (Vector3.Distance(item.collider.gameObject.transform.position, new Vector3(start.getX(), start.getY())) < .3f)
            {
                //we don't care!
            }
            else
            {
                if (!lastSpaceFree && Vector3.Distance(item.collider.gameObject.transform.position, new Vector3(end.getX(), end.getY())) < .3f)
                {
                    continue;
                }
                canCollide b = null;
                if (item.collider.gameObject.TryGetComponent <canCollide>(out b))
                {
                    switch (b.getSubType())
                    {
                    case CollidableType.BEING:
                        Being a = (Being)b.getSub();
                        Side  s = a.getSide();
                        if (user.getSide() == s && mask.blockedByAllies)
                        {
                            colList.Add(item.collider);
                        }
                        else
                        {
                            if (mask.blockedByEnemies)
                            {
                                colList.Add(item.collider);
                            }
                        }
                        break;

                    case CollidableType.WALL:
                        if (mask.blockedByWalls)
                        {
                            colList.Add(item.collider);
                        }
                        break;
                    }
                }
            }
        }
        Debug.Log("Count: " + colList.Count);
        return(!(colList.Count > 0));
    }
コード例 #2
0
 public Thing(canCollide s, Tile t, CollidableType ty)
 {
     sub = s;
     setTile(t);
     subType = ty;
 }