Ir ao conteúdo

C# Quero parar a animção da particula após um dterminado tempo


Ir à solução Resolvido por Eduardoxxt,

Posts recomendados

Postado

<CODE>

 

Estou fazendo um script na unity, toda vez que pertar ESPAÇO a particula vai acionar(Play), mas depois de acionada ela nao para mais e continua acionando.

 

gostaria de saber como criar um contador para que após um determinado tempo a particula (Stop).

 

Este é o codigo:

{

    public ParticleSystem particula;

    
    
    void Start()
    {
        particula = GetComponent<ParticleSystem>();
        particula.Stop();
      


    }

    
    void Update()
    {
        if(Input.GetKeyDown(KeyCode.Space))
        {
            particula.Play();               
        } 


}

Postado

Certo, você tem uma variável que vai armazenar a partícula. No seu script, ao iniciar o jogo você coloca uma referência para a partícula e já aciona ela para parar. No update, você pede para seu script verificar a se a tecla espaço tá sendo apertada, se sim, vai iniciar a partícula. 

No caso você deveria usar Coroutine

  • Curtir 1
Postado
1 minuto atrás, Eduardoxxt disse:

Certo, você tem uma variável que vai armazenar a partícula. No seu script, ao iniciar o jogo você coloca uma referência para a partícula e já aciona ela para parar. No update, você pede para seu script verificar a se a tecla espaço tá sendo apertada, se sim, vai iniciar a partícula. 

No caso você deveria usar Coroutine

ok, entao vou ter que dar uma pesquisada porque nao sei nada sobre Coroutine kkkk

 

mano, eu tentei dessa forma, mas a particula nao dá (Play)

 

{

    public ParticleSystem particula;

    
    
    void Start()
    {
        particula = GetComponent<ParticleSystem>();
        particula.Stop();
      


    }

    
    void Update()
    {
        


    }

    IEnumerator ParticulaPlay()
    {
        yield return new WaitForSeconds(1.0f);

if(Input.GetKeyDown(KeyCode.Space))
        {
            particula.Play();               
        } 


    }

    

        

        
        

    
    
}

  • Solução
Postado

@mah_smaug

1 minuto atrás, mah_smaug disse:

ok, entao vou ter que dar uma pesquisada porque nao sei nada sobre Coroutine kkkk

 

É bom. Faz muito tempo que não uso unity e acho que pode ter uns erro. Porém tu pode fazer algo assim:

 

public ParticleSystem particula;

public int tempo;

 

    

    

    void Start()

    {

        particula = GetComponent<ParticleSystem>();

        particula.Stop();

      

 

    }

 

    

    void Update()

    {

        if(Input.GetKeyDown(KeyCode.Space))

        {

            particula.Play(); 

            tempo++; 

if(tempo > 1) 

{partícula.stop();}

.      

}

else 

tempo = 0;

 

 

Algo assim, muito tempo mesmo que não uso e também tô sem PC para avaliar melhor. Se funcionar, também não recomendo. Tem formas melhores como Coroutine. 

 

 

26 minutos atrás, mah_smaug disse:

ok, entao vou ter que dar uma pesquisada porque nao sei nada sobre Coroutine kkkk

 

mano, eu tentei dessa forma, mas a particula nao dá (Play)

 

{

    public ParticleSystem particula;

    
    
    void Start()
    {
        particula = GetComponent<ParticleSystem>();
        particula.Stop();
      


    }

    
    void Update()
    {
        


    }

    ParticulaPlay()
    {
        yield return new WaitForSeconds(1.0f);

if(Input.GetKeyDown(KeyCode.Space))
        {
            particula.Play();               
        } 


    }

    

        

        
        

    
    
}

Tá faltando a função do IEnumerator

Bem mal feito isso daqui mas acho que dá para dar uma noção para você conseguir fazer:

 

void Update()

    {

        

 

if(Input.GetKeyDown(KeyCode.Space))

 

        {

 

            particula.Play();   

                

StartCoroutine(ParticulaPlay());

        } 

    }

 

    IEnumerator ParticulaPlay()

    {

        yield return new WaitForSeconds(4.0f);

particula.Stop();

 

 

 

    }

 

Enfim, algo assim. Se tivesse com PC te ajudaria mais. Boa sorte guri.

 

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!