Continue da tela de GameOver travando
Página 1 de 1 • Compartilhe •
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- MembroAvançado
-
PONTOS : 1034
REPUTAÇÃO : 18
Idade : 23
Áreas de atuação : Modelagem básica no Maya
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 : 1516
REPUTAÇÃO : 105
Idade : 24
Á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- MembroAvançado
-
PONTOS : 1034
REPUTAÇÃO : 18
Idade : 23
Áreas de atuação : Modelagem básica no Maya
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- MembroAvançado
-
PONTOS : 1034
REPUTAÇÃO : 18
Idade : 23
Áreas de atuação : Modelagem básica no Maya
Respeito as regras :
MarcosSchultz- Administrador
-
PONTOS : 10374
REPUTAÇÃO : 1834
Idade : 21
Áreas de atuação : Administrador do fórum
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 : 2089
REPUTAÇÃO : 335
Áreas de atuação : Programação em C#, PHP. SQL, JavaScript (Web)
Respeito as regras :
Página 1 de 1
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum