Script de Tempo
2 participantes
Página 1 de 1
Script de Tempo
Como posso fazer um script que vai controlar o tempo, aonde depois de 2 min se o jogador não fizer o que é pedido ele morre!!
Edivandro2706- Avançado
- PONTOS : 2093
REPUTAÇÃO : 4
Respeito as regras :
Re: Script de Tempo
[quote="Edivandro2706"]Como posso fazer um script que vai controlar o tempo, aonde depois de 2 min se o jogador não fizer o que é pedido ele morre!![/quote]
Tu põe uma variável private de tempo... e então no update, incrementa nessa variável o Time.deltaTime, que o tempo corre... e então, faz um if pra comparar o tempo decorrido e o que tu quer... aí faz no if o que tu quiser...
tipo...
[code]float tempo;
public float tempoParaMorrer; ou float tempoParaMorrer;
void Start(){
tempoParaMorrer = ???; //põe aí o tempo que tu quer que ele morra...
}
void update(){
tempo += Time.deltaTime;
if(tempo > tempoParaMorrer){
//faz o que quiser...
}
}[/code]
Acho que seria nesse sentido...
Tu põe uma variável private de tempo... e então no update, incrementa nessa variável o Time.deltaTime, que o tempo corre... e então, faz um if pra comparar o tempo decorrido e o que tu quer... aí faz no if o que tu quiser...
tipo...
[code]float tempo;
public float tempoParaMorrer; ou float tempoParaMorrer;
void Start(){
tempoParaMorrer = ???; //põe aí o tempo que tu quer que ele morra...
}
void update(){
tempo += Time.deltaTime;
if(tempo > tempoParaMorrer){
//faz o que quiser...
}
}[/code]
Acho que seria nesse sentido...
joffersoju- Avançado
- PONTOS : 2508
REPUTAÇÃO : 4
Respeito as regras :
Re: Script de Tempo
Seria muito complicado colocar o tempo na tela? Tipo, que fica marcando esses minutos!!
Edivandro2706- Avançado
- PONTOS : 2093
REPUTAÇÃO : 4
Respeito as regras :
Re: Script de Tempo
não... seria tipo assim...
pode por isso em um objeto vazio... e insere os dados que tu quer no inspector e insere também o gameobjectText...
testei não, mas é nesse sentido aí...
- Código:
public Text textoTela; //tem que inserir engineUI --- aqui tu vai inserir o gameobject tipo Text para aparecer na tela
public float tempo, tempoMax; //é os tempos que tu quer
public string stringVoltaScene; //aqui pode por o nome da scene, ou usar um IDscene ou escreve o nome dela mesmo
void Update(){
tempo += Time.deltaTime;
textoTela.GetComponent<Text>().text = "" + tempo.ToString();
if(tempo > tempoMax && <aqui insere a condição que ele tem que fazer pra não morrer>){
SceneManager.LoadScene(stringVoltaScene); //aqui a scene volta...
<pode por um som ou mostrar um texto, faz de acordo com o que tu quer fazer>
}
pode por isso em um objeto vazio... e insere os dados que tu quer no inspector e insere também o gameobjectText...
testei não, mas é nesse sentido aí...
joffersoju- Avançado
- PONTOS : 2508
REPUTAÇÃO : 4
Respeito as regras :
Re: Script de Tempo
Meu script ficou assim, porem ele está dando esses erros!!!
Assets\Scripts\TempoDeJogo.cs(10,15): error CS0102: The type 'TempoDeJogo' already contains a definition for 'tempo'
Assets\Scripts\TempoDeJogo.cs(9,9): error CS0246: The type or namespace name 'Text' could not be found (are you missing a using directive or an assembly reference?)
Assets\Scripts\TempoDeJogo.cs(10,15): error CS0102: The type 'TempoDeJogo' already contains a definition for 'tempo'
Assets\Scripts\TempoDeJogo.cs(9,9): error CS0246: The type or namespace name 'Text' could not be found (are you missing a using directive or an assembly reference?)
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TempoDeJogo : MonoBehaviour
{
float tempo;
public float tempoParaMorrer;
public Text textoTela; //tem que inserir engineUI --- aqui tu vai inserir o gameobject tipo Text para aparecer na tela
public float tempo, tempoMax; //é os tempos que tu quer
public string Primeira; //aqui pode por o nome da scene, ou usar um IDscene ou escreve o nome dela mesmo
public PassarDeFase Passar;
void Start()
{
tempoParaMorrer = 2; //põe aí o tempo que tu quer que ele morra...
}
void Update()
{
tempo += Time.deltaTime;
if (tempo >tempoParaMorrer){
SceneManager.LoadScene (Menu);
}
textoTela.GetComponent<Text>().text = "" + tempo.ToString();
if(tempo > tempoMax && (Passar.Texto >=2))
SceneManager.LoadScene (Primeira);
}
}
Edivandro2706- Avançado
- PONTOS : 2093
REPUTAÇÃO : 4
Respeito as regras :
Re: Script de Tempo
Tenta esse aqui...
Vê aí... ele abre a scene que tu inseriu o nome no inspector depois do tempo... só falta a outra condição do "que o jogador tem que fazer, que é algo particular de cada jogo"...
eu só não entendi o que tu queria com o trecho do teu código:
[list=linenums]
[*] if(tempo > tempoMax && (Passar.Texto >=2))
[*] SceneManager.LoadScene (Primeira);
[*] }
[/list]
- Código:
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class TempoDeJogo : MonoBehaviour
{
public Text textoNaTela; //aqui tu vai inserir o gameobject tipo TextUI para aparecer na tela
public float tempoNaTela; //deixa em branco no Inspector, é só pra visualizar o tempo rolando
public float tempoParaMorrer; //escreve o valor no Inspector
public string nomeCenaQueVolta; //escreve no Inspector o nome da scene
void Update()
{
tempoNaTela += Time.deltaTime;
textoNaTela.GetComponent<Text>().text = "" + tempoNaTela.ToString();
if (tempoNaTela > tempoParaMorrer)
{
SceneManager.LoadScene(nomeCenaQueVolta);
}
}
}
Vê aí... ele abre a scene que tu inseriu o nome no inspector depois do tempo... só falta a outra condição do "que o jogador tem que fazer, que é algo particular de cada jogo"...
eu só não entendi o que tu queria com o trecho do teu código:
[list=linenums]
[*] if(tempo > tempoMax && (Passar.Texto >=2))
[*] SceneManager.LoadScene (Primeira);
[*] }
[/list]
joffersoju- Avançado
- PONTOS : 2508
REPUTAÇÃO : 4
Respeito as regras :
Re: Script de Tempo
Agora deu certo, mas tem como aparecer apenas os min e seg? Tentei trocar o "float" para "int" mas dá erro!!!
Edivandro2706- Avançado
- PONTOS : 2093
REPUTAÇÃO : 4
Respeito as regras :
Re: Script de Tempo
- Código:
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class TempoDeJogo : MonoBehaviour
{
public Text textoNaTela; //aqui tu vai inserir o gameobject tipo TextUI para aparecer na tela
public float tempoNaTela, tempoParaMorrer; //escreve os valores no Inspector
public string nomeCenaQueVolta; //escreve no Inspector o nome da scene
public float contaMinutos; //contagem dos minutos
void Update()
{
tempoNaTela += Time.deltaTime;
textoNaTela.GetComponent<Text>().text = contaMinutos.ToString("0") + "m: " + tempoNaTela.ToString("0") + "s";
if (tempoNaTela > tempoParaMorrer)
{
SceneManager.LoadScene(nomeCenaQueVolta);
}
TempoNaCenaMinutosSegundos();
}
void TempoNaCenaMinutosSegundos()
{
if (tempoNaTela >= 60)
{
contaMinutos++;
tempoNaTela = 0;
}
}
}
acho que assim funfa...
joffersoju- Avançado
- PONTOS : 2508
REPUTAÇÃO : 4
Respeito as regras :
Tópicos semelhantes
» Tempo em Script
» Criar prefable em tempo de jogo ? via script é possivel.
» como posso colocar tempo em qualquer script?
» [Resolvido]Como fais para dar um determinado tempo em um script
» Desativar script em duas cenas ao mesmo tempo que o toogle for ativado.
» Criar prefable em tempo de jogo ? via script é possivel.
» como posso colocar tempo em qualquer script?
» [Resolvido]Como fais para dar um determinado tempo em um script
» Desativar script em duas cenas ao mesmo tempo que o toogle for ativado.
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos