tempo parar
4 participantes
Página 1 de 1
tempo parar
Estou com uma dúvida...
Como fazer o cronometro parar, pois, sempre que ponho, tipo time += Time.deltaTime; e depois no final da função... time = 0... ele sempre volta...
Eu pus na void Start, mas, o tempo não roda... pus na Update e ela reinicia, mas, não para...
Como fazer?
Como fazer o cronometro parar, pois, sempre que ponho, tipo time += Time.deltaTime; e depois no final da função... time = 0... ele sempre volta...
Eu pus na void Start, mas, o tempo não roda... pus na Update e ela reinicia, mas, não para...
Como fazer?
joffersoju- Avançado
- PONTOS : 2504
REPUTAÇÃO : 4
Respeito as regras :
Re: tempo parar
Poste seu código pra entender melhor amigo..
nibirou- MembroAvançado
- PONTOS : 2074
REPUTAÇÃO : 15
Áreas de atuação : C#,C++,produção de audio
Respeito as regras :
Re: tempo parar
Eu quero fazer estilo inimigo perseguir uma bolinha azul (teste)...
Esse código vai na bolinha azul que é o personagem temporário
Esse no inimigo
E esse em um gameObject do cenário (escolhi a luz)...
Queria que o tempo parasse em 0, mas, ele sempre reinicia...
Se caso quiserem tb me dar umas dicas para melhorar o codigo usando loop ou outro mecanismo mais adequado em alguma parte deles, agradeço...
Esse código vai na bolinha azul que é o personagem temporário
- Código:
using UnityEngine;
public class MoverObjeto2D : MonoBehaviour
{
public float speed;
void Update()
{
var move = new Vector3(Input.GetAxis("Horizontal"), Input.GetAxis("Vertical"), 0); //detectar a movimento em x e y
transform.position += move * speed * Time.deltaTime;
}
}
}
Esse no inimigo
- Código:
using UnityEngine;
public class InimigoSeguir : MonoBehaviour
{
public float velocidade;
public int distanciaColisao;
public static Transform Target;
public Animator[] dino;
void Start()
{
Target = GameObject.FindGameObjectWithTag("Player").GetComponent<Transform>(); //recebe a tag com o player
}
void FixedUpdate() //faz ele nao entrar e chama a funcao movimentando
{
if (Vector3.Distance(transform.position, Target.position) > distanciaColisao)
{
transform.position = Vector3.MoveTowards(transform.position, Target.position, velocidade * Time.deltaTime);
}
Movimentando();
}
void Movimentando()//aqui ele aciona a animação de frente ou de costas do inimigo, dependendo do eixo y do player
{
if (InimigoSeguir.Target.position.y < transform.position.y)
{
GetComponent<Animator>().runtimeAnimatorController = dino[0].GetComponent<Animator>().runtimeAnimatorController;
}
else if (InimigoSeguir.Target.position.y > transform.position.y)
{
GetComponent<Animator>().runtimeAnimatorController = dino[1].GetComponent<Animator>().runtimeAnimatorController;
}
}
}
E esse em um gameObject do cenário (escolhi a luz)...
- Código:
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class LiberandoInimigo : MonoBehaviour
{
public float tempo;
public GameObject[] inimigos;
public Transform posicaoInicialAlvo;
// Use this for initialization
private void Start()
{
posicaoInicialAlvo = InimigoSeguir.Target; //variavel para receber a posicial inicial do player
}
void Update() //se o player se movimentar, entra na funcao LiberaInimigo
{
if (InimigoSeguir.Target != posicaoInicialAlvo)
{
Debug.Log("entrou no if do update");
LiberaInimigo();
Debug.Log("saiu no if do update");
}
}
private void LiberaInimigo()//aqui os inimigos vao ser liberados a cada segundo e depois o jogo segue...
{
tempo += Time.deltaTime;
if (tempo > 2)
{
inimigos[0].GetComponent<InimigoSeguir>().enabled = true;
}
if (tempo > 3)
{
inimigos[1].GetComponent<InimigoSeguir>().enabled = true;
}
if (tempo > 4)
{
inimigos[2].GetComponent<InimigoSeguir>().enabled = true;
}
if (tempo > 5)
{
inimigos[3].GetComponent<InimigoSeguir>().enabled = true;
}
if (tempo > 6)
{
inimigos[4].GetComponent<InimigoSeguir>().enabled = true;
}
tempo = 0;
}
}
Queria que o tempo parasse em 0, mas, ele sempre reinicia...
Se caso quiserem tb me dar umas dicas para melhorar o codigo usando loop ou outro mecanismo mais adequado em alguma parte deles, agradeço...
joffersoju- Avançado
- PONTOS : 2504
REPUTAÇÃO : 4
Respeito as regras :
Re: tempo parar
a imagem do jogo teste
joffersoju- Avançado
- PONTOS : 2504
REPUTAÇÃO : 4
Respeito as regras :
Re: tempo parar
Coloque isso
- Código:
if (tempo >= 7)//Se for maior ou igual a 7 reniciar a 0
{
tempo = 0;
}
Re: tempo parar
Se vc quer ativar um inimigo num array a cada 1 segundo pq não usa um IEnumerator?
- Código:
void Start(){
StartCoroutine("LiberarInimigos");
}
IEnumerator LiberarInimigos(){
for(int i = 0; i < inimigos.Length; i++){
yield return new WaitForSeconds(1);
inimigos[i].GetComponent<InimigoSeguir>().enabled = true;
}
}
Tópicos semelhantes
» como parar o tempo
» Como parar um Cronometro?
» Parar animações
» Lanterna piscando sem parar
» Como parar o som ao se mover?
» Como parar um Cronometro?
» Parar animações
» Lanterna piscando sem parar
» Como parar o som ao se mover?
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos