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(); } }