Exemple #1
0
    public static Vector2Int GetFreeField(this IPathfinder traversibleMapSource, Vector2Int avoid, out bool valid)
    {
        valid = false;
        Vector2Int result = Vector2Int.left;

        if (traversibleMapSource.MapExists)
        {
            Vector2Int[] traversibleFields = traversibleMapSource.GetTraversibleFields();

            if (traversibleFields.Length > 1 || (traversibleFields.Length == 1 && !traversibleFields[0].Equals(avoid)))
            {
                int index = -1;

                do
                {
                    index = Random.Range(0, traversibleFields.Length);
                }while (traversibleFields[index].Equals(avoid));

                result = traversibleFields[index];
                valid  = true;
            }
        }

        return(result);
    }