Ejemplo n.º 1
0
    public void ActivateThisTile()
    {
        if (this != GameManager.managerGame.systemPathfinding.destTile)
        {
            ChargePathMaterial();
            Collider[] collision = Physics.OverlapSphere(transform.position, radiusContact);


            List <TileScript> tilesList = new List <TileScript>();
            foreach (Collider col in collision)
            {
                if (col.gameObject.GetComponent <TileScript>() != null && col.gameObject != this)
                {
                    tilesList.Add(col.gameObject.GetComponent <TileScript>());
                }
            }
            TileScript moreShortPosition = null;
            float      minimumDistance   = Mathf.Infinity;
            foreach (TileScript tile in tilesList)
            {
                if (minimumDistance > tile.fCost && tile != this.GetComponent <TileScript>() && !tile.isUsedBool)
                {
                    moreShortPosition = tile;

                    minimumDistance = tile.fCost;
                }
            }


            if (moreShortPosition != null)
            {
                isUsedBool = true;
                GameManager.managerGame.systemPathfinding.ReestructurePathfinding(transform.position);
                moreShortPosition.ChargePathMaterial();
                moreShortPosition.AccessToTheTile();
            }
            else
            {
                GameManager.managerGame.systemPathfinding.originTile.AccessToTheTile();
            }
        }
        else
        {
            GameManager.managerGame.systemPathfinding.ChooseStarterPath();
        }
    }