[TUTORIAL] AI Enemy ( Jogos de terror )
+39
juninhooloko171
BlesseD
gustakegamer@gmail.com
joaozinho
ArysonSantos
kaufergomi
Mourao
dstaroski
BrazaTattoo
Joaopm1
marcelo123
PauloFR
GamersBR
Pedro Canassa Garcia
rafaelllsd
marx
tom ramber
Sergio Pimentel
Callyde Jr
zlDxTitan
JohnRambo
dalker
guithelucario
theallan256
Brian Victor
Gray_14
gagasilva
cosmoplay
zeca urubu
LeonradoGp
Orixinals
luizmeirelesx
Chilinger
LUCIFER
jhon lenon
osiasbezerra
eduardo9715
Lucas Garcia Frade
MarcosSchultz
43 participantes
Página 2 de 3
Página 2 de 3 • 1, 2, 3
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
Gagasilva, o Pivot está com a rotação errada. Crie um novo objeto e jogue seu inimigo na rotação correta dentro deste objeto. ai neste objeto que você criou você vai por o script, os colisores, etc
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
okk obrigado vou tentar
gagasilva- Iniciante
- PONTOS : 3279
REPUTAÇÃO : 1
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
Aqui tá dando esse erro "Assets/Scripts Jogo/INTELIGENCIA.cs(77,54): error CS1061: Type `UnityEngine.Transform' does not contain a definition for `VIDA' and no extension method `VIDA' of type `UnityEngine.Transform' could be found (are you missing a using directive or an assembly reference?)"
@ edit - Consertei o erro, estava no script do Player.
@ edit - Consertei o erro, estava no script do Player.
Gray_14- Avançado
- PONTOS : 3443
REPUTAÇÃO : 22
Idade : 30
Áreas de atuação : Modelagem básica low poly no Maya 3D
Respeito as regras :
Brian Victor- Membro
- PONTOS : 3329
REPUTAÇÃO : 3
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
O meu player esta entrando dentro do colisor do inimigo, ou seja o inimigo ha uma capsula collider, com is trigger desmarcado, se tirar a capsula quando o character controller da na mesma por favor ajude asisim ta muito esquisito :/
theallan256- Iniciante
- PONTOS : 3489
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
theallan256 escreveu:O meu player esta entrando dentro do colisor do inimigo, ou seja o inimigo ha uma capsula collider, com is trigger desmarcado, se tirar a capsula quando o character controller da na mesma por favor ajude asisim ta muito esquisito :/
Poste prints e o seu script
theallan256- Iniciante
- PONTOS : 3489
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
Esse e o print, este momento e quando eu colidi com o inimigo e ele me jogou pra cima, alem de atravessar ele me joga pra cima, tentei tirar o capsule collider, rigibody, nn consegui por favor alguma sugestao? mas se vc anda bem devagarinho e encostar nele, o player colidi, mas se vc ficar no W mesmo e trombar com ele de leve mesmo vc passa dentro dele, ou te joga pra cima. vlw pela resposta
theallan256- Iniciante
- PONTOS : 3489
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
theallan256, leia a regra nº 2 por favor, sem flood
Afinal, por que o seu inimigo tem um CharacterController e cade o navMesh dele? Viu o vídeo inteiro?
Afinal, por que o seu inimigo tem um CharacterController e cade o navMesh dele? Viu o vídeo inteiro?
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
Este e so um teste q fiz com seu script, no caso desde tutorial, esta perfeitacaramente igual ao seu . esse nn usou navmesh, mesmo com ou sem ele da esse bug. ja tentei varios script ate mesmo oficial da unity sobre enemy ai. https://www.schultzgames.com/t101-tutorial-inteligencia-artificial-inimigo-e-aipoints?highlight=inimigo
theallan256- Iniciante
- PONTOS : 3489
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
theallan256 escreveu:Este e so um teste q fiz com seu script, no caso desde tutorial, esta perfeitacaramente igual ao seu . esse nn usou navmesh, mesmo com ou sem ele da esse bug. ja tentei varios script ate mesmo oficial da unity sobre enemy ai. https://www.schultzgames.com/t101-tutorial-inteligencia-artificial-inimigo-e-aipoints?highlight=inimigo
Crie um tópico específico para o seu problema, postando prints do seu Player, do inimigo e os scripts que os 2 tem
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
deu um bug mt chato cmg:
Assets/Scripts/IA Policiais.cs(75,46): error CS1061: Type `UnityEngine.Transform' does not contain a definition for `Vida' and no extension method `Vida' of type `UnityEngine.Transform' could be found (are you missing a using directive or an assembly reference?)
Assets/Scripts/IA Policiais.cs(75,46): error CS1061: Type `UnityEngine.Transform' does not contain a definition for `Vida' and no extension method `Vida' of type `UnityEngine.Transform' could be found (are you missing a using directive or an assembly reference?)
guithelucario- Iniciante
- PONTOS : 3115
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
Você não assistiu o tutorial completo... O jogador tem que ter um script de vida com uma variável estática para poder sofrer o dano.
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
Ah ok muito obrigado vou prestar mais atenção no tutorial :D
guithelucario- Iniciante
- PONTOS : 3115
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
MarcosSchultz escreveu:Você não assistiu o tutorial completo... O jogador tem que ter um script de vida com uma variável estática para poder sofrer o dano.
Marcos utilizei seu script e o inimigo esta atacando corretamente, entretanto, gostaria de fazer a animação dele. Só consigo animar o inimigo quando utilizo o Third person user control, só que eu fico controlando ele, como faria pra animar a partir desse script?
dalker- Iniciante
- PONTOS : 3114
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
Vc já tem as animações prontas?
JohnRambo- Moderador
- PONTOS : 5171
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 :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
Viu, eu acabei de ver uma coisa aqui no meu Projeto! Quando eu spawno longe do meu inimigo, ele começa a ir aleatóriamente para as posiçoes marcas. Mas quando eu chego perto dele, ele sai correndo atrás de mim... Mas logo quando me distancio do campo de visão dele, ele para e não volta a transitar pelas posiçoes aleatórias! Oque poderia ser??
E também está dando esté erre pra mim: UnassignedReferenceException: The variable Player of INTELIGENCIA has not been assigned.
You probably need to assign the Player variable of the INTELIGENCIA script in the inspector.
INTELIGENCIA.Update () (at Assets/Inteligencia Artificial/INTELIGENCIA.cs:18)
Se puder ajudar, fico agradecido!
E também está dando esté erre pra mim: UnassignedReferenceException: The variable Player of INTELIGENCIA has not been assigned.
You probably need to assign the Player variable of the INTELIGENCIA script in the inspector.
INTELIGENCIA.Update () (at Assets/Inteligencia Artificial/INTELIGENCIA.cs:18)
Se puder ajudar, fico agradecido!
zlDxTitan- Iniciante
- PONTOS : 2994
REPUTAÇÃO : 0
Idade : 24
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
Você linkou o "Player" na variável dele? O inimigo não está conseguindo achar o player pelo erro.
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
Aqui deu tudo certo parabens Marcos pelo tutorial
estou usando aqui aquele script: Sistema de fome, sede, barra de vida, barra de estamina, itens e dano por queda.
mais nao estou conseguindo fazer o inimigo tirar vida do Player ?
nessa parte eu adicionei static em vida cheia?
[list=linenums]
[*]public static float VidaCheia = 100, EstaminaCheia = 100, FomeCheia = 100, SedeCheia = 100,velocidadeEstamina= 250;
[/list]
estou usando aqui aquele script: Sistema de fome, sede, barra de vida, barra de estamina, itens e dano por queda.
mais nao estou conseguindo fazer o inimigo tirar vida do Player ?
nessa parte eu adicionei static em vida cheia?
[list=linenums]
[*]public static float VidaCheia = 100, EstaminaCheia = 100, FomeCheia = 100, SedeCheia = 100,velocidadeEstamina= 250;
[/list]
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
Callyde Jr escreveu:Aqui deu tudo certo parabens Marcos pelo tutorial
estou usando aqui aquele script: Sistema de fome, sede, barra de vida, barra de estamina, itens e dano por queda.
mais nao estou conseguindo fazer o inimigo tirar vida do Player ?
nessa parte eu adicionei static em vida cheia?
[list=linenums]
[*]public static float VidaCheia = 100, EstaminaCheia = 100, FomeCheia = 100, SedeCheia = 100,velocidadeEstamina= 250;
[/list]
Seria interessante você criar um tópico próprio para esta dúvida, postando os scripts que você está usando e tudo mais... para evitar mudar o foco deste tópico aqui :D
Más já adianto para ir conferindo as tags do player e talz, por que o inimigo se baseia nisso na maioria dos meus scripts.
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
Resolvi aqui coloquei ao contrario no script da INTELIGENCIA no lugar de - DanoDoInimgo eu coloquei um + em vez de - agora ele esta tirando vida,
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
Em primeiro lugar, boa tarde! Estou aprendendo muito com seus vídeos!
Marcos, estou com um problema pois aqui ele não está seguindo o meu player. Ele vai para os AIPoints tudo certinho, quando eu me aproximo do inimigo e fico parado, aparece a mensagem de recebeu ataque mas ela passa batido por mim sem demonstrar interesse. Onde posso ter errado?
Marcos, estou com um problema pois aqui ele não está seguindo o meu player. Ele vai para os AIPoints tudo certinho, quando eu me aproximo do inimigo e fico parado, aparece a mensagem de recebeu ataque mas ela passa batido por mim sem demonstrar interesse. Onde posso ter errado?
Sergio Pimentel- Iniciante
- PONTOS : 2987
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
Sergio Pimentel escreveu:Em primeiro lugar, boa tarde! Estou aprendendo muito com seus vídeos!
Marcos, estou com um problema pois aqui ele não está seguindo o meu player. Ele vai para os AIPoints tudo certinho, quando eu me aproximo do inimigo e fico parado, aparece a mensagem de recebeu ataque mas ela passa batido por mim sem demonstrar interesse. Onde posso ter errado?
Colocou a tag no Player?
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
Pois é! Estava faltando! Muito bom, cara!
Agora a minha dúvida é a seguinte: Para fazer o NavMesh você usou um Plano e eu tenho um terreno pronto com vegetação e tudo e queria fazer esse mesmo esquema nele. Como seria o procedimento?
Agora a minha dúvida é a seguinte: Para fazer o NavMesh você usou um Plano e eu tenho um terreno pronto com vegetação e tudo e queria fazer esse mesmo esquema nele. Como seria o procedimento?
Sergio Pimentel- Iniciante
- PONTOS : 2987
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
Sergio Pimentel escreveu:Pois é! Estava faltando! Muito bom, cara!
Agora a minha dúvida é a seguinte: Para fazer o NavMesh você usou um Plano e eu tenho um terreno pronto com vegetação e tudo e queria fazer esse mesmo esquema nele. Como seria o procedimento?
é a mesma coisa... na hora de fazer o bake você pode ajeitar algumas configurações, mas a NavMesh se adapta aos terrenos, e até a degraus.
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
E ai Marcos beleza?! Vc tem algum script que o personagem sofra danos e tenha uma barra de vida que ao chegar em 0 der GameOver...no caso GameOver será a sena do meu principal....outra coisa qual a melhor forma de programar? C# sharp ou Java script?
tom ramber- Avançado
- PONTOS : 3139
REPUTAÇÃO : 12
Idade : 37
Áreas de atuação : Blender, Unity
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
tom ramber escreveu:E ai Marcos beleza?! Vc tem algum script que o personagem sofra danos e tenha uma barra de vida que ao chegar em 0 der GameOver...no caso GameOver será a sena do meu principal....outra coisa qual a melhor forma de programar? C# sharp ou Java script?
Sempre C#, SEMPRE.
Quanto ao "script" de load, é algo meio basicão O.o mas depende da AI do seu inimigo... na void "morrer" dele, ele tem que ter algum comando de SceneManager.LoadScene(); pra fazer o load para a cena de menu.
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
MarcosSchultz escreveu:Sergio Pimentel escreveu:Pois é! Estava faltando! Muito bom, cara!
Agora a minha dúvida é a seguinte: Para fazer o NavMesh você usou um Plano e eu tenho um terreno pronto com vegetação e tudo e queria fazer esse mesmo esquema nele. Como seria o procedimento?
é a mesma coisa... na hora de fazer o bake você pode ajeitar algumas configurações, mas a NavMesh se adapta aos terrenos, e até a degraus.
Marcos, uma outra pergunta: Esse seu modelo ficou perfeito, mas pensei numa situação em que as paredes internas do labirinto fossem móveis. Considerando que após o bake, algumas áreas ficariam inacessíveis aos inimigo, como eu deveria fazer o ajuste já que num cenário móvel uma determinada área que seria ocupada por uma parede num primeiro momento ela estaria preenchida pelo muro mas depois ela ficaria acessível porque o muro teria saído dali?
Sergio Pimentel- Iniciante
- PONTOS : 2987
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
Tipo no filme "Maze runner" ??
JohnRambo- Moderador
- PONTOS : 5171
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 :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
Usei um script do video "inimigo seguir e atacar jogador" deu tudo certo inclusive o carregamento da minha Cena MENU... mais vi que não usou um collider,o que fica estranho o inimigo atravessar o player...meu inimigo e um drone...queria que ele atirasse no player e q as balas causasse o dano no player...o que devo alterar tanto em seu script "inimigo"?
tom ramber- Avançado
- PONTOS : 3139
REPUTAÇÃO : 12
Idade : 37
Áreas de atuação : Blender, Unity
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
Amigo isso é assunto para outro tópico, crie um na área "Dúvidas em geral" e especifique com clareza o que você quer
JohnRambo- Moderador
- PONTOS : 5171
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 :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
Na verdade, não assisti ao filme, mas vou fazê-lo pela indicação!John Rambo escreveu:Tipo no filme "Maze runner" ??
Fico no aguardo da orientação para solucionar meu problema!
Sergio Pimentel- Iniciante
- PONTOS : 2987
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
meu esta dando erro no Nav Mesh Agent.
Assets/Standard Assets/INTELIGENCIA.cs(5,10): error CS0246: The type or namespace name `NavMeshAgent' could not be found. Are you missing `UnityEngine.AI' using directive?
oq eu faço?
Assets/Standard Assets/INTELIGENCIA.cs(5,10): error CS0246: The type or namespace name `NavMeshAgent' could not be found. Are you missing `UnityEngine.AI' using directive?
oq eu faço?
marx- Iniciante
- PONTOS : 2878
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
Esse erro é porque você não esta usando a livraria AI coloque junto com as outras isso:marx escreveu:meu esta dando erro no Nav Mesh Agent.
Assets/Standard Assets/INTELIGENCIA.cs(5,10): error CS0246: The type or namespace name `NavMeshAgent' could not be found. Are you missing `UnityEngine.AI' using directive?
oq eu faço?
- Código:
using UnityEngine.AI;
rafaelllsd- ProgramadorMaster
- PONTOS : 5241
REPUTAÇÃO : 507
Idade : 24
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
vlw!!rafaelllsd escreveu:Esse erro é porque você não esta usando a livraria AI coloque junto com as outras isso:marx escreveu:meu esta dando erro no Nav Mesh Agent.
Assets/Standard Assets/INTELIGENCIA.cs(5,10): error CS0246: The type or namespace name `NavMeshAgent' could not be found. Are you missing `UnityEngine.AI' using directive?
oq eu faço?
- Código:
using UnityEngine.AI;
marx- Iniciante
- PONTOS : 2878
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
COLOQUEI VIDA NO SCRIPT, PRA QUANDO CHEGAR A ''0'' MUDAR A ''VELOCIDADE''(ANIMAÇAO DE MORTE) E DESTRUIR O ''INIMIGO'',MAS ELE N PERDE VIDA NUNCA.
ESTOU USANDO PARA ATINGIR ELE O SCRIPT DAS ARMAS E O RAYCAST .
PQ N DA CERTO?
using UnityEngine.AI;
using UnityEngine;
using System.Collections;
public class ESQUELETO : MonoBehaviour {
public Transform Player;
private UnityEngine.AI.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;
public float vida = 100;
bool chamouMorte = false;
private Animator controlInimigo;
public float velocidade;
public Coroutine StartCoroutine;
void Start (){
controlInimigo = GetComponent<Animator>();
AIPointAtual = Random.Range (0, DestinosAleatorios.Length);
naveMesh = transform.GetComponent<UnityEngine.AI.NavMeshAgent> ();
}
void Update (){
controlInimigo.SetFloat ("velocidade", velocidade);
if (vida <= 0) {
vida = 0;
if (chamouMorte == false) {
chamouMorte = true;
velocidade = 4.1f;
StartCoroutine ("Morrer");
}
}
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) {
velocidade = 1.1f;
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(){
velocidade = 0f;
naveMesh.speed = 0;
transform.LookAt (Player);
}
void Perseguir(){
velocidade = 2.1f;
naveMesh.acceleration = 8;
naveMesh.speed = VelocidadeDePerseguicao;
naveMesh.destination = Player.position;
}
void Atacar (){
velocidade = 3.1f;
atacandoAlgo = true;
}
IEnumerator Morrer(){
GetComponent<MeshRenderer> ().material.color = Color.red;
yield return new WaitForSeconds (10);
Destroy (gameObject);
}
ESTOU USANDO PARA ATINGIR ELE O SCRIPT DAS ARMAS E O RAYCAST .
PQ N DA CERTO?
using UnityEngine.AI;
using UnityEngine;
using System.Collections;
public class ESQUELETO : MonoBehaviour {
public Transform Player;
private UnityEngine.AI.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;
public float vida = 100;
bool chamouMorte = false;
private Animator controlInimigo;
public float velocidade;
public Coroutine StartCoroutine;
void Start (){
controlInimigo = GetComponent<Animator>();
AIPointAtual = Random.Range (0, DestinosAleatorios.Length);
naveMesh = transform.GetComponent<UnityEngine.AI.NavMeshAgent> ();
}
void Update (){
controlInimigo.SetFloat ("velocidade", velocidade);
if (vida <= 0) {
vida = 0;
if (chamouMorte == false) {
chamouMorte = true;
velocidade = 4.1f;
StartCoroutine ("Morrer");
}
}
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) {
velocidade = 1.1f;
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(){
velocidade = 0f;
naveMesh.speed = 0;
transform.LookAt (Player);
}
void Perseguir(){
velocidade = 2.1f;
naveMesh.acceleration = 8;
naveMesh.speed = VelocidadeDePerseguicao;
naveMesh.destination = Player.position;
}
void Atacar (){
velocidade = 3.1f;
atacandoAlgo = true;
}
IEnumerator Morrer(){
GetComponent<MeshRenderer> ().material.color = Color.red;
yield return new WaitForSeconds (10);
Destroy (gameObject);
}
marx- Iniciante
- PONTOS : 2878
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
marx, crie um tópico separado para a sua dúvida, postando os scripts do Player e do inimigo, a tag que o seu jogador tem, etc
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
Marcos primeiramente agradeço por ser este professor incrível, com muitas aulas e todas boas.
Eu segui todo o vídeo, e o meu inimigo faz tudo correto, porém quando ele esta passeando e me vê, ele corre até mim e me mata, tudo ok, mas quando eu consigo fugir ele não vai passear de novo ele apenas fica parado no lugar.
Agradeço a quem me responder!!
Eu segui todo o vídeo, e o meu inimigo faz tudo correto, porém quando ele esta passeando e me vê, ele corre até mim e me mata, tudo ok, mas quando eu consigo fugir ele não vai passear de novo ele apenas fica parado no lugar.
Agradeço a quem me responder!!
Pedro Canassa Garcia- Iniciante
- PONTOS : 2877
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
Cara, eu estou usando a Unity 5.5, só que o inimigo não me segue, por mais perto que eu esteja dele
GamersBR- Membro
- PONTOS : 3147
REPUTAÇÃO : 3
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
Talvez o personagem não esteja encostando no bake do navmeshGamersBR escreveu:Cara, eu estou usando a Unity 5.5, só que o inimigo não me segue, por mais perto que eu esteja dele
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
Pessoal que está com problemas, por favor, postem prints de como tudo está configurado.
Outra coisa, o Jogador está com a tag "Player" ?
Outra coisa, o Jogador está com a tag "Player" ?
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
depois que o inimigo ve o player ele fica parado e não volta a seguir os points, e eu não fiz nenhuma alteração no script então não tem como eu saber onde esta o erro, obs: o script se auto atualizou na vdd vou mandar ele a seguir pra ve se podem me ajudar!
using UnityEngine;
using System.Collections;
public class INTELIGENCIA : MonoBehaviour {
public Transform Player;
private UnityEngine.AI.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<UnityEngine.AI.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;
PLAYER1.VIDA = PLAYER1.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;
}
}
using UnityEngine;
using System.Collections;
public class INTELIGENCIA : MonoBehaviour {
public Transform Player;
private UnityEngine.AI.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<UnityEngine.AI.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;
PLAYER1.VIDA = PLAYER1.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;
}
}
marcelo123- Membro
- PONTOS : 3533
REPUTAÇÃO : 1
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
Estou criando um RPG simples, quero utilizar este código para criar a movimentação nos inimigos em pontos curtos, porém por algum motivo o inimigo associado ao NavMesh esta ignorando os blocos que coloquei para teste. OBS: Os Scripts só foram alterados por questões de sintaxe do meu projeto.
Meu Bake foi configurado da seguinte forma:
E o NavMeshAgent do Player assim:
Alguma ideia do que possa ser?
Meu Bake foi configurado da seguinte forma:
E o NavMeshAgent do Player assim:
Alguma ideia do que possa ser?
Joaopm1- Avançado
- PONTOS : 2891
REPUTAÇÃO : 12
Idade : 26
Áreas de atuação : Aprendiz de C# , Unity e Blender.
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
Excelente trabalho Marcos, primeira duvida minha aqui no Site, Fiz tudo correto porem esta dando erro em duas linhas do script "INTELIGENCIA", dizendo que nao pode encontrar o NavMeshAgent linha 5, e tambem na linha 14 (AIPointAtual = Random.Range (0, DestinosAleatorios.Length) desde ja agradeço e parabens pelo excelente trabalho!
BrazaTattoo- Membro
- PONTOS : 3259
REPUTAÇÃO : 24
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
Buenas noches! pode ser algum método no código que precisa ser atualizado devido as mudanças de versões da Unity. Posta ai pra gente o código dar uma olhada.BrazaTattoo escreveu:Excelente trabalho Marcos, primeira duvida minha aqui no Site, Fiz tudo correto porem esta dando erro em duas linhas do script "INTELIGENCIA", dizendo que nao pode encontrar o NavMeshAgent linha 5, e tambem na linha 14 (AIPointAtual = Random.Range (0, DestinosAleatorios.Length) desde ja agradeço e parabens pelo excelente trabalho!
Abraço!
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
opa vou mandar dois prints, creio que possa ser por causa da versao mesmo por que usei o mesmo script sem alteraçoes.
BrazaTattoo- Membro
- PONTOS : 3259
REPUTAÇÃO : 24
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
opa vou mandar duas imagens, obrigado pela atençao!
http://uploaddeimagens.com.br/imagens/script-png-2352f4c8-4658-4e12-b230-af3858b98120
http://uploaddeimagens.com.br/imagens/zumbi-png-c8765eb3-37f2-48c5-8914-53174d8cc36f
http://uploaddeimagens.com.br/imagens/script-png-2352f4c8-4658-4e12-b230-af3858b98120
http://uploaddeimagens.com.br/imagens/zumbi-png-c8765eb3-37f2-48c5-8914-53174d8cc36f
BrazaTattoo- Membro
- PONTOS : 3259
REPUTAÇÃO : 24
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
Marcos, por favor, eu assisti ao seu tutorial mas por algum motivo meu inimigo não está indo atrás do player, se eu chego no alcance ele me acerta mas não me persegue ;-;
Obs: mudei as variáveis para inglês pois estou mais acostumado, mas tentei com o código que estava aqui no forum e ele também não me persegue
Obs2: Lembrei também de mudar a tag para Player, tanto que até adicionei no código dele a linha transform.tag = "Player";
segue o código:
Obs: mudei as variáveis para inglês pois estou mais acostumado, mas tentei com o código que estava aqui no forum e ele também não me persegue
Obs2: Lembrei também de mudar a tag para Player, tanto que até adicionei no código dele a linha transform.tag = "Player";
segue o código:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;
public class Monster : MonoBehaviour {
public Transform Player;
public float perceptDistance = 30, followDistance = 20, attackDistance = 2;
public float velocityWalk = 3, velocityFollow = 6, timePerAttack = 1.5f, damege = 100;
public Transform[] destinyRandom;
private NavMeshAgent naveMech;
private float distancePlayer, distanceAipoint;
private bool seePlayer;
private int nowAIpoint;
private bool followAnything, contFA, attackAnything;
private float cronoFollow, cronoAttack;
// Use this for initialization
void Start () {
nowAIpoint = Random.Range(0, destinyRandom.Length);
naveMech = transform.GetComponent<NavMeshAgent>();
}
// Update is called once per frame
void Update () {
distancePlayer = Vector3.Distance(Player.transform.position, transform.position);
distanceAipoint = Vector3.Distance(destinyRandom[nowAIpoint].transform.position, transform.position);
//====Raycast====//
RaycastHit hit;
Vector3 location = transform.position;
Vector3 forLocation = Player.transform.position;
Vector3 direction = forLocation - location;
if(Physics.Raycast(transform.position, direction, out hit, 150) && distancePlayer < perceptDistance)
{
if (hit.collider.gameObject.CompareTag("Player"))
{
seePlayer = true;
}
else
{
seePlayer = false;
}
}
//====Checagem e Decisões do Inimigo====
if (distancePlayer > perceptDistance)
{
Walk();
}
if (distancePlayer <= perceptDistance && distancePlayer > followDistance)
{
if(seePlayer == true)
{
See();
}
else
{
Walk();
}
}
if(distancePlayer <= followDistance && distancePlayer > attackDistance)
{
if (seePlayer == true)
{
RunOut();
followAnything = true;
}
else
{
Walk();
}
}
if(distancePlayer <= attackDistance)
{
Attack();
}
//Comandos de Walk
if(distanceAipoint <= 2)
{
nowAIpoint = Random.Range(0, destinyRandom.Length);
Walk();
}
//Contadores de Perseguição
if(contFA == true)
{
cronoFollow += Time.deltaTime;
Debug.Log("Entrou!");
}
if(cronoFollow >= 5 && seePlayer == false)
{
contFA = false;
cronoFollow = 0;
followAnything = false;
}
//Contador Attack
if(attackAnything == true)
{
cronoAttack += Time.deltaTime;
}
if(cronoAttack >= timePerAttack && distancePlayer <= attackDistance)
{
attackAnything = true;
cronoAttack = 0;
PlayerBehaviour.life += -damege;
}
else if(cronoAttack >= timePerAttack && distancePlayer > attackDistance)
{
attackAnything = false;
cronoAttack = 0;
}
}
void Walk()
{
if(followAnything == false)
{
naveMech.acceleration = 5;
naveMech.speed = velocityWalk;
naveMech.destination = destinyRandom[nowAIpoint].position;
}
else if(followAnything == true)
{
contFA = true;
}
}
void See()
{
naveMech.speed = 0;
transform.LookAt(Player);
}
void RunOut()
{
naveMech.acceleration = 8;
naveMech.speed = velocityFollow;
naveMech.destination = Player.position;
}
void Attack()
{
attackAnything = true;
}
}
Mourao- Iniciante
- PONTOS : 2433
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
Mourao escreveu:Marcos, por favor, eu assisti ao seu tutorial mas por algum motivo meu inimigo não está indo atrás do player, se eu chego no alcance ele me acerta mas não me persegue ;-;
Obs: mudei as variáveis para inglês pois estou mais acostumado, mas tentei com o código que estava aqui no forum e ele também não me persegue
Obs2: Lembrei também de mudar a tag para Player, tanto que até adicionei no código dele a linha transform.tag = "Player";
segue o código:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;
public class Monster : MonoBehaviour {
public Transform Player;
public float perceptDistance = 30, followDistance = 20, attackDistance = 2;
public float velocityWalk = 3, velocityFollow = 6, timePerAttack = 1.5f, damege = 100;
public Transform[] destinyRandom;
private NavMeshAgent naveMech;
private float distancePlayer, distanceAipoint;
private bool seePlayer;
private int nowAIpoint;
private bool followAnything, contFA, attackAnything;
private float cronoFollow, cronoAttack;
// Use this for initialization
void Start () {
nowAIpoint = Random.Range(0, destinyRandom.Length);
naveMech = transform.GetComponent<NavMeshAgent>();
}
// Update is called once per frame
void Update () {
distancePlayer = Vector3.Distance(Player.transform.position, transform.position);
distanceAipoint = Vector3.Distance(destinyRandom[nowAIpoint].transform.position, transform.position);
//====Raycast====//
RaycastHit hit;
Vector3 location = transform.position;
Vector3 forLocation = Player.transform.position;
Vector3 direction = forLocation - location;
if(Physics.Raycast(transform.position, direction, out hit, 150) && distancePlayer < perceptDistance)
{
if (hit.collider.gameObject.CompareTag("Player"))
{
seePlayer = true;
}
else
{
seePlayer = false;
}
}
//====Checagem e Decisões do Inimigo====
if (distancePlayer > perceptDistance)
{
Walk();
}
if (distancePlayer <= perceptDistance && distancePlayer > followDistance)
{
if(seePlayer == true)
{
See();
}
else
{
Walk();
}
}
if(distancePlayer <= followDistance && distancePlayer > attackDistance)
{
if (seePlayer == true)
{
RunOut();
followAnything = true;
}
else
{
Walk();
}
}
if(distancePlayer <= attackDistance)
{
Attack();
}
//Comandos de Walk
if(distanceAipoint <= 2)
{
nowAIpoint = Random.Range(0, destinyRandom.Length);
Walk();
}
//Contadores de Perseguição
if(contFA == true)
{
cronoFollow += Time.deltaTime;
Debug.Log("Entrou!");
}
if(cronoFollow >= 5 && seePlayer == false)
{
contFA = false;
cronoFollow = 0;
followAnything = false;
}
//Contador Attack
if(attackAnything == true)
{
cronoAttack += Time.deltaTime;
}
if(cronoAttack >= timePerAttack && distancePlayer <= attackDistance)
{
attackAnything = true;
cronoAttack = 0;
PlayerBehaviour.life += -damege;
}
else if(cronoAttack >= timePerAttack && distancePlayer > attackDistance)
{
attackAnything = false;
cronoAttack = 0;
}
}
void Walk()
{
if(followAnything == false)
{
naveMech.acceleration = 5;
naveMech.speed = velocityWalk;
naveMech.destination = destinyRandom[nowAIpoint].position;
}
else if(followAnything == true)
{
contFA = true;
}
}
void See()
{
naveMech.speed = 0;
transform.LookAt(Player);
}
void RunOut()
{
naveMech.acceleration = 8;
naveMech.speed = velocityFollow;
naveMech.destination = Player.position;
}
void Attack()
{
attackAnything = true;
}
}
tende deixar esta variável pública: 'seePlayer'
E veja se ela está ficando verdadeira em algum momento. Se não estiver, então é problema no Raycast
Re: [TUTORIAL] AI Enemy ( Jogos de terror )
Ela não ficou verdadeira em nenhum momento.
Mourao- Iniciante
- PONTOS : 2433
REPUTAÇÃO : 0
Respeito as regras :
Página 2 de 3 • 1, 2, 3
Tópicos semelhantes
» [TUTORIAL] AI Enemy 2.0 + animações ( Jogos de terror )
» [TUTORIAL] Fazer textura aparecer rapidamente na tela ( susto para jogos de terror )
» [TUTORIAL] Como criar um JOGO DE TERROR
» Sistema de se Esconder - Jogos de Terror
» [Unity 5] script de perseguição para jogos de terror
» [TUTORIAL] Fazer textura aparecer rapidamente na tela ( susto para jogos de terror )
» [TUTORIAL] Como criar um JOGO DE TERROR
» Sistema de se Esconder - Jogos de Terror
» [Unity 5] script de perseguição para jogos de terror
Página 2 de 3
Permissões neste sub-fórum
Não podes responder a tópicos