O que acrescentar no script para fazer o personagem morrer??
3 participantes
Página 1 de 1
O que acrescentar no script para fazer o personagem morrer??
O que posso acrescentar nesses scripts para que quando meu personagem morrer, ele carregue outra cena??
- Inteligência:
- 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;
Debug.Log ("recebeuAtaque");
} else if (cronometroAtaque >= TempoPorAtaque && DistanciaDoPlayer > DistanciaDeAtacar) {
atacandoAlgo = false;
cronometroAtaque = 0;
Debug.Log ("errou");
}
}
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;
}
}
- Player:
- Código:
using UnityEngine;
using System.Collections;
public class PLAYER : MonoBehaviour {
public static float VIDA = 100;
void Update (){
if (VIDA <= 0) {
Debug.Log ("morreu");
}
}
}
Última edição por Fagner em Seg Nov 18, 2019 2:14 pm, editado 1 vez(es) (Motivo da edição : Colocar códigos na codebox pra facilitar a leitura)
Edivandro2706- Avançado
- PONTOS : 2090
REPUTAÇÃO : 4
Respeito as regras :
Re: O que acrescentar no script para fazer o personagem morrer??
Depende do que quer fazer.
Se for um jogo rápido, é bom usar um fade in e depois um fade out e neste tempo reposicionar o personagem para o último checkpoint, talvez até recarregar a cena, caso tenha inimigos ou objetos destrutíveis/móveis.
Se for um jogo mais lento, então seria bom dar destaque a cena de morte, colocar efeitos na tela.
Da forma que está o script, quando chegar a vida = 0, vai ficar infinitamente imprimindo o texto "morreu", para evitar isso, crie uma variável do tipo bool, desta forma.
Desta forma, vai imprimir apenas 1 vez o texto, você pode colocar os efeitos, animação, etc.
Se for um jogo rápido, é bom usar um fade in e depois um fade out e neste tempo reposicionar o personagem para o último checkpoint, talvez até recarregar a cena, caso tenha inimigos ou objetos destrutíveis/móveis.
Se for um jogo mais lento, então seria bom dar destaque a cena de morte, colocar efeitos na tela.
Da forma que está o script, quando chegar a vida = 0, vai ficar infinitamente imprimindo o texto "morreu", para evitar isso, crie uma variável do tipo bool, desta forma.
- Código:
using UnityEngine;
using System.Collections;
public class PLAYER : MonoBehaviour
{
public static float VIDA = 100;
public static bool estaVivo = true;
void Update ()
{
if (VIDA <= 0 & estaVivo)
{
estaVivo = false;
Debug.Log ("morreu");
}
}
}
Desta forma, vai imprimir apenas 1 vez o texto, você pode colocar os efeitos, animação, etc.
Re: O que acrescentar no script para fazer o personagem morrer??
Edivandro2706 escreveu:O que posso acrescentar nesses scripts para que quando meu personagem morrer, ele carregue outra cena??
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.SceneManagement;
public class PLAYER : MonoBehaviour {
public static float VIDA = 100;
void Update (){
if (VIDA <= 0) {
Debug.Log ("morreu");
SceneManager.LoadScene("NomeDaCenaAqui");
}
}
}
JohnRambo- Moderador
- PONTOS : 5173
REPUTAÇÃO : 661
Idade : 24
Áreas de atuação : Unity;
Programação;
Música e Sonorização;
Graduado em Análise e Desenvolvimento de Sistemas;
Respeito as regras :
Tópicos semelhantes
» Como fazer o personagem me atacar e fazer o personagem morrer??
» Preciso de um script para fazer o personagem pular
» Como faço para quando o meu personagem morrer a luz fique vermelha?
» Script para mudar posição do personagem
» Personagem não para ao fazer a animação de atirar
» Preciso de um script para fazer o personagem pular
» Como faço para quando o meu personagem morrer a luz fique vermelha?
» Script para mudar posição do personagem
» Personagem não para ao fazer a animação de atirar
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos