Continue da tela de GameOver travando
4 participantes
Página 1 de 1
Continue da tela de GameOver travando
Eu estou com um problema, fiz uma cena GameOver e coloquei um Script com Continue e Quit, fui no Build, liguei as cenas e fui testar, o personagem quando morre vai para a tela de GameOver porém quando eu pressiono Continue ela mal carrega pra tela de jogo já volta para o GameOver, gostaria de saber por que isso está acontecendo.
Scripts usados.
Scripts usados.
- Código:
using UnityEngine;
using System.Collections;
public class PLAYER : MonoBehaviour {
public static float VIDA = 100;
void Update (){
if (VIDA <= 0) {
Application.LoadLevel("GameOver");
}
}
}
- Código:
using UnityEngine;
using System.Collections;
public class INTELIGENCIA : MonoBehaviour {
public Transform Player;
private NavMeshAgent naveMesh;
private float DistanciaDoPlayer, DistanciaDoAIPoint;
public float DistanciaDePercepcao = 30,DistanciaDeSeguir = 20, DistanciaDeAtacar = 2, VelocidadeDePasseio = 3, VelocidadeDePerseguicao = 6,TempoPorAtaque = 1.5f, DanoDoInimigo = 40;
private bool VendoOPlayer;
public Transform[] DestinosAleatorios;
private int AIPointAtual;
private bool PerseguindoAlgo, contadorPerseguindoAlgo,atacandoAlgo;
private float cronometroDaPerseguicao,cronometroAtaque;
void Start (){
AIPointAtual = Random.Range (0, DestinosAleatorios.Length);
naveMesh = transform.GetComponent<NavMeshAgent> ();
}
void Update (){
DistanciaDoPlayer = Vector3.Distance(Player.transform.position,transform.position);
DistanciaDoAIPoint = Vector3.Distance(DestinosAleatorios[AIPointAtual].transform.position,transform.position);
//============================== RAYCAST ===================================//
RaycastHit hit;
Vector3 deOnde = transform.position;
Vector3 paraOnde = Player.transform.position;
Vector3 direction = paraOnde - deOnde;
if(Physics.Raycast (transform.position,direction,out hit,1000) && DistanciaDoPlayer < DistanciaDePercepcao ){
if(hit.collider.gameObject.CompareTag("Player")){
VendoOPlayer = true;
}else{
VendoOPlayer = false;
}
}
//================ CHECHAGENS E DECISOES DO INIMIGO ================//
if(DistanciaDoPlayer > DistanciaDePercepcao){
Passear();
}
if (DistanciaDoPlayer <= DistanciaDePercepcao && DistanciaDoPlayer > DistanciaDeSeguir) {
if(VendoOPlayer == true){
Olhar ();
}else{
Passear();
}
}
if (DistanciaDoPlayer <= DistanciaDeSeguir && DistanciaDoPlayer > DistanciaDeAtacar) {
if(VendoOPlayer == true){
Perseguir();
PerseguindoAlgo = true;
}else{
Passear();
}
}
if (DistanciaDoPlayer <= DistanciaDeAtacar) {
Atacar();
}
//COMANDOS DE PASSEAR
if (DistanciaDoAIPoint <= 2) {
AIPointAtual = Random.Range (0, DestinosAleatorios.Length);
Passear();
}
//CONTADORES DE PERSEGUICAO
if (contadorPerseguindoAlgo == true) {
cronometroDaPerseguicao += Time.deltaTime;
}
if (cronometroDaPerseguicao >= 5 && VendoOPlayer == false) {
contadorPerseguindoAlgo = false;
cronometroDaPerseguicao = 0;
PerseguindoAlgo = false;
}
// CONTADOR DE ATAQUE
if (atacandoAlgo == true) {
cronometroAtaque += Time.deltaTime;
}
if (cronometroAtaque >= TempoPorAtaque && DistanciaDoPlayer <= DistanciaDeAtacar) {
atacandoAlgo = true;
cronometroAtaque = 0;
PLAYER.VIDA = PLAYER.VIDA - DanoDoInimigo;
} else if (cronometroAtaque >= TempoPorAtaque && DistanciaDoPlayer > DistanciaDeAtacar) {
atacandoAlgo = false;
cronometroAtaque = 0;
}
}
void Passear (){
if (PerseguindoAlgo == false) {
naveMesh.acceleration = 5;
naveMesh.speed = VelocidadeDePasseio;
naveMesh.destination = DestinosAleatorios [AIPointAtual].position;
} else if (PerseguindoAlgo == true) {
contadorPerseguindoAlgo = true;
}
}
void Olhar(){
naveMesh.speed = 0;
transform.LookAt (Player);
}
void Perseguir(){
naveMesh.acceleration = 8;
naveMesh.speed = VelocidadeDePerseguicao;
naveMesh.destination = Player.position;
}
void Atacar (){
atacandoAlgo = true;
}
}
- Código:
using UnityEngine;
using System.Collections;
public class GameOver : MonoBehaviour {
public Texture texture;
void Start () {
}
// Update is called once per frame
void Update () {
}
void OnGUI ()
{
GUI.DrawTexture(new Rect(0,0,Screen.width,Screen.height),texture);
if(GUI.Button(new Rect(Screen.width*0.1f,Screen.height*0.8f,Screen.width/3,Screen.height/10),"CONTINUA"))
{
Application.LoadLevel("Floresta");
}
if(GUI.Button(new Rect(Screen.width*0.6f,Screen.height*0.8f,Screen.width/3,Screen.height/10),"SAIR"))
{
Application.Quit();
}
}
}
Gray_14- Avançado
- PONTOS : 3444
REPUTAÇÃO : 22
Idade : 30
Áreas de atuação : Modelagem básica low poly no Maya 3D
Respeito as regras :
Re: Continue da tela de GameOver travando
Suponho que quando a vida do player vai pra zero, ele vai pra tela de game over, quando clica em continuar ele volta pro jogo ainda com zero de vida, acho que você tem que dar um jeito de quando clicar em "continuar" a vida do player esteja cheia novamente, eu suponho que seja isso...
ismarspn- Programador
- PONTOS : 3999
REPUTAÇÃO : 147
Idade : 30
Áreas de atuação : Unity, Photoshop, Illustrator, After Effects, Adobe Flash
Respeito as regras :
Re: Continue da tela de GameOver travando
ismarspn escreveu:Suponho que quando a vida do player vai pra zero, ele vai pra tela de game over, quando clica em continuar ele volta pro jogo ainda com zero de vida, acho que você tem que dar um jeito de quando clicar em "continuar" a vida do player esteja cheia novamente, eu suponho que seja isso...
Pois é eu notei isso, agora vou lá quebrar a cabeça pra reverter isso
Gray_14- Avançado
- PONTOS : 3444
REPUTAÇÃO : 22
Idade : 30
Áreas de atuação : Modelagem básica low poly no Maya 3D
Respeito as regras :
Re: Continue da tela de GameOver travando
Consegui dar "aquele jeito", como não manjo de programação mas felizmente entendo um pouco de gambiarras, juntei um script que faz o personagem ir a tela de GameOver instantaneamente ao encostar no personagem e que funciona quando o jogador dá continue, não é perfeito mas olhando pelo lado bom deixou o jogo mais competitivo até, um encosto do inimigo e já era hahaha.
Gray_14- Avançado
- PONTOS : 3444
REPUTAÇÃO : 22
Idade : 30
Áreas de atuação : Modelagem básica low poly no Maya 3D
Respeito as regras :
Re: Continue da tela de GameOver travando
Na classe que controla a vida, coloque na void start vida = 100. Isso deve arrumar. Pois ao carregar a cena os scripts serao "recarregados". Salvo se voce nao o destruiu (objeto) durante as trocas de cenas
RenanMSV- Instrutor
- PONTOS : 4484
REPUTAÇÃO : 356
Áreas de atuação : Programação em C#, PHP. SQL, JavaScript (Web)
Respeito as regras :
Tópicos semelhantes
» sistema de "Continuar" estilo fliperama "continue"
» Como rodar tela de Gameover?
» Unity AI Enemy (Qunado o Monstro Encostrar No Player Dar GameOver)
» aplicativo travando
» Como criar varias tela na mesma tela
» Como rodar tela de Gameover?
» Unity AI Enemy (Qunado o Monstro Encostrar No Player Dar GameOver)
» aplicativo travando
» Como criar varias tela na mesma tela
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos