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