Contagem de tempo em classes abstratas
3 participantes
Página 1 de 1
Contagem de tempo em classes abstratas
boa tarde,
quero fazer uma contagem de tempo com coroutines dentro de uma classe abstrata pai. tenho os seguintes scripts:
script classe filha anexada em um objeto:
script classe abstrata pai:
O VariavelScript nao tem nada mas herda tudo que tem na classe abstrata.
variavel nao está ficando verdadeira depois de 2 segundos, usando coroutines.
gostaria que alguem me ajudasse nisso! valeu!
quero fazer uma contagem de tempo com coroutines dentro de uma classe abstrata pai. tenho os seguintes scripts:
script classe filha anexada em um objeto:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class VariavelScript : AbstractClass {
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
}
}
script classe abstrata pai:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public abstract class AbstractClass : MonoBehaviour {
public bool variavel;
void Start() {
StartCoroutine("TornarVerdadeiro");
}
IEnumerator TornarVerdadeiro() {
yield return new WaitForSeconds(2.0f);
variavel = true;
}
// Update is called once per frame
void Update()
{
}
}
O VariavelScript nao tem nada mas herda tudo que tem na classe abstrata.
variavel nao está ficando verdadeira depois de 2 segundos, usando coroutines.
gostaria que alguem me ajudasse nisso! valeu!
Flávio- MembroAvançado
- PONTOS : 2831
REPUTAÇÃO : 29
Áreas de atuação : Aprendizagem em:
Programação C#;
Pixelart
Respeito as regras :
Re: Contagem de tempo em classes abstratas
em vez de usar o StartCoroutine("TornarVerdadeiro"); -- Na void start do "AbstractClass" é só tirar ele dai e colar na void start da classe que herda ele no caso a "VariavelScript"
nibirou- MembroAvançado
- PONTOS : 2074
REPUTAÇÃO : 15
Áreas de atuação : C#,C++,produção de audio
Respeito as regras :
Re: Contagem de tempo em classes abstratas
O Start só vai funcionar se o script estiver linkado em algum GameObject em cena, por isso que provavelmente ele não iniciou a Corrotina. Mesmo porque não faz sentido fazer uma classe abstrata ser componente da Unity, ela realmente vai servir como classe base para outra classe ou componente.
Tente chamar a Corrotina através da classe filha.
Edit: agora que vi que já responderam haha anyway
Tente chamar a Corrotina através da classe filha.
Edit: agora que vi que já responderam haha anyway
Re: Contagem de tempo em classes abstratas
Entendi, por isso que o Start não funciona, não tem objeto anexado ao AbstractClass.
Minha intenção é fazer códigos na classe abstrata pai comuns para gameobjects que terão algumas ações em comum, para não ficar repetindo o mesmo código nas classes filhas desses objetos. Mas como classe abstrata não anexa em objeto então terei que repetir alguns códigos nas classes filhas mesmo, como as coroutinas.
valeu Mayleone e nibirou!!
Minha intenção é fazer códigos na classe abstrata pai comuns para gameobjects que terão algumas ações em comum, para não ficar repetindo o mesmo código nas classes filhas desses objetos. Mas como classe abstrata não anexa em objeto então terei que repetir alguns códigos nas classes filhas mesmo, como as coroutinas.
valeu Mayleone e nibirou!!
Flávio- MembroAvançado
- PONTOS : 2831
REPUTAÇÃO : 29
Áreas de atuação : Aprendizagem em:
Programação C#;
Pixelart
Respeito as regras :
Re: Contagem de tempo em classes abstratas
No caso, você pode fazer com que o Start da classe abstrata seja um método virtual, e o Start das classes filhas sejam override, assim você pode reutilizar o Start de formas diferentes em cada filha.
Daí no Start da filha, você pode chamar o Start da classe pai, assim:
Daí no Start da filha, você pode chamar o Start da classe pai, assim:
- Código:
public class ClasseFilha : ClassePai{
protected override void Start (){
base.Start();
}
}
Re: Contagem de tempo em classes abstratas
MayLeone escreveu:No caso, você pode fazer com que o Start da classe abstrata seja um método virtual, e o Start das classes filhas sejam override, assim você pode reutilizar o Start de formas diferentes em cada filha.
Daí no Start da filha, você pode chamar o Start da classe pai, assim:
- Código:
public class ClasseFilha : ClassePai{
protected override void Start (){
base.Start();
}
}
Aí sim funcionou usando protected virtual void na classe pai e protected override void na filha.
Isso vai me ser util pra muita coisa.
valeu!
Flávio- MembroAvançado
- PONTOS : 2831
REPUTAÇÃO : 29
Áreas de atuação : Aprendizagem em:
Programação C#;
Pixelart
Respeito as regras :
Tópicos semelhantes
» Dúvida sobre classes
» Fazer uma contagem de tempo regressiva
» Como fazer contagem de tempo em jogo offline?
» Diferença entre Dictionary e Classes[]
» Contagem C#
» Fazer uma contagem de tempo regressiva
» Como fazer contagem de tempo em jogo offline?
» Diferença entre Dictionary e Classes[]
» Contagem C#
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos