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

erro no Jogador.cs

Unity diz que há esses erros aqui:

  • Assets\Iscripitis\Jogador.cs(13,26): error CS0029: Cannot implicitly convert type 'GeradorDeObstaculos' to 'Obstaculo'
  • Assets\Iscripitis\Jogador.cs(18,24): error CS1061: 'Obstaculo' does not contain a definition for 'Parar' and no accessible extension method 'Parar' accepting a first argument of type 'Obstaculo' could be found (are you missing a using directive or an assembly reference?)

Código Jogador.cs:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Jogador : MonoBehaviour
{
    private Carrossel[] cenario;
    private Obstaculo obstaculo;

    private void Start()
    {
        this.cenario = this.GetComponentsInChildren<Carrossel>();
        this.obstaculo = this.GetComponentInChildren<GeradorDeObstaculo>();
    }

    public void Desativar()
    {
        this.obstaculo.Parar();
        foreach(var carrossel in this.cenario)
        {
            carrossel.enabled = false;
        }
    }
}

Código GeradorDeObstaculos.cs ( se for necessário edita-lo ):

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class GeradorDeObstaculo : MonoBehaviour {
    [SerializeField]
    private float TempoParaGerarFacil;
    [SerializeField]
    private float TempoParaGerarDificil;
    [SerializeField]
    private GameObject ManualDeInstrucoes;
    private float Cronometro;
    private ControleDeDificuldade controleDeDificuldade;
    private bool parado;

    private void Awake()

    {
        this.Cronometro = this.TempoParaGerarFacil;
    }

    private void Start()
    {
        this.controleDeDificuldade = GameObject.FindObjectOfType<ControleDeDificuldade>();
    }

    private void Update() {

        if (this.parado)
        {
            return;
        }

        this.Cronometro -= Time.deltaTime;
        if(this.Cronometro < 0)
        {
            GameObject.Instantiate(this.ManualDeInstrucoes, this.transform.position, Quaternion.identity);
            this.Cronometro = Mathf.Lerp(this.TempoParaGerarFacil, this.TempoParaGerarDificil, this.controleDeDificuldade.Dificuldade);
        }
    }   
    public void Parar()
    {
        this.parado = true;
    }
}
2 respostas
solução!

Eu achei o erro, agradeço quem clicou aqui para me ajudar.

Altere o tipo do atributo obstáculo para GeradorDeObstaculo


using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Jogador : MonoBehaviour
{
    private Carrossel[] cenario;
    private GeradorDeObstaculo obstaculo;

    private void Start()
    {
        this.cenario = this.GetComponentsInChildren<Carrossel>();
        this.obstaculo = this.GetComponentInChildren<GeradorDeObstaculo>();
    }

    public void Desativar()
    {
        this.obstaculo.Parar();
        foreach(var carrossel in this.cenario)
        {
            carrossel.enabled = false;
        }
    }
}