Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

erro "CS1525: Unexpected symbol 'bool',....

bom, seguindo a aula não consegui passar do da etapa "07 Diminuindo o alcance da Torre", conferi todo o codigo em video e em texto e mesmo assim me dá o erro: "erro "CS1525: Unexpected symbol 'bool',...." dei uma procurada no google mas tambem não identifiquei qual poderia ser o problema...

private bool IsInRange (GameObject enemy)
   {
        Vector3 enemyPositionOnPlan = Vector3.ProjectOnPlane (enemy.transform.position, Vector3.up);
        Vector3 towerPositionOnPlan = Vector3.ProjectOnPlane (this.transform.position, Vector3.up);

        float distanceToEnemy = Vector3.Distance (towerPositionOnPlan, enemyPositionOnPlan);

        return distanceToEnemy <= towerRange;
    }
4 respostas

Boa tarde Jean,

você pode postar o erro completo e o código da classe onde ele aponta esse erro?

Olá. Segue o erro: Assets/Scripts/Tower.cs(50,11): error CS1525: Unexpected symbol bool', expectingclass', delegate',enum', interface',partial', or `struct'

Abaixo o codigo completo, agradeço pela resposta:

public class Tower : MonoBehaviour {

    public GameObject missilePrefab;
    public float rechargeTime = 1f;
    private float lastShootTime;
    [SerializeField] private float towerRange;

    // Use this for initialization
    void Update() {
        Enemy target = ChooseTarget();
        if (target != null)
        {
            Shoot(target);
        }
    }

    private void Shoot(Enemy enemy)
    {
        float currentTime = Time.time;
        if (currentTime > lastShootTime + rechargeTime)
        {
            lastShootTime = currentTime;
            GameObject ShootPoint = this.transform.Find("Towercannon/ShootPoint").gameObject;
            Vector3 ShootPointPosition = ShootPoint.transform.position;
            GameObject missileObject = (GameObject) Instantiate (missilePrefab, ShootPointPosition, Quaternion.identity);
            Missile missile = missilePrefab.GetComponent<Missile>();
            missile.SetTarget(enemy);
        }
    }

    private Enemy ChooseTarget()
        {
            GameObject[] enemies = GameObject.FindGameObjectsWithTag("Enemy");
        foreach (GameObject enemy in enemies)
        {
            if (IsInRange (enemy))
            {
                return enemy.GetComponent<Enemy>();
            }
        }
        return null;        
        }
    }

   private bool IsInRange (GameObject enemy)
   {
        Vector3 enemyPositionOnPlan = Vector3.ProjectOnPlane (enemy.transform.position, Vector3.up);
        Vector3 towerPositionOnPlan = Vector3.ProjectOnPlane (this.transform.position, Vector3.up);

        float distanceToEnemy = Vector3.Distance (towerPositionOnPlan, enemyPositionOnPlan);

        return distanceToEnemy <= towerRange;
    }
}
solução!

Você tem um "}" na linha 43. Você ta fechando o método ChooseTarget duas vezes.

Nossa muito obrigado! Eu tinha revisado varias vezes e não notei, valeu mesmo! Desculpa pela desatenção, abraço!