Ejemplo n.º 1
0
    private MazeUnit GetPossibleTarget()
    {
        MazeMovement unitMovement = unit.GetMovement();
        Maze         maze         = Maze.Instance;

        MazeUnit possibleTarget = maze.GetOccupant(unitMovement.GetMazePos() + Vector2Int.up);

        if (IsTargetValid(possibleTarget))
        {
            return(possibleTarget);
        }

        possibleTarget = maze.GetOccupant(unitMovement.GetMazePos() + Vector2Int.right);

        if (IsTargetValid(possibleTarget))
        {
            return(possibleTarget);
        }

        possibleTarget = maze.GetOccupant(unitMovement.GetMazePos() + Vector2Int.down);

        if (IsTargetValid(possibleTarget))
        {
            return(possibleTarget);
        }

        possibleTarget = maze.GetOccupant(unitMovement.GetMazePos() + Vector2Int.left);

        if (IsTargetValid(possibleTarget))
        {
            return(possibleTarget);
        }

        return(null);
    }
Ejemplo n.º 2
0
 void OnEnable()
 {
     anim = GetComponent <Animator>();
     anim.SetTrigger("fright");
     if (movement == null)
     {
         movement = GetComponent <MazeMovement>();
     }
     direction          = movement.GetDirectionVector(movement.direction);
     transform.position = new Vector3(Mathf.Floor(transform.position.x) + 0.5f,
                                      Mathf.Floor(transform.position.y) + 0.5f);
     GetComponent <FollowTarget>().RevertDirection();
 }
Ejemplo n.º 3
0
 void Start()
 {
     body      = GetComponent <Rigidbody2D>();
     CanChange = true;
     movement  = GetComponent <MazeMovement>();
 }