SchultzGames
Para tirar dúvidas, crie um tópico especifico na área "Dúvidas em Geral" e aguarde ser respondido. Evite comentar em tópicos não relacionados a sua dúvida :D
TÓPICOS RECENTES:
Tópico:
Postado em:
Postado por:
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
Transparência em múltiplos sprites
[___COMO UTILIZAR O FÓRUM___] Principais botões e suas funções
[____ADMINISTRAÇÃO____] PRECISO DE AJUDA [DICA PARA SER AJUDADO]
[____APOIE O FÓRUM E O CANAL E GANHE RECOMPENSAS____]
Gerador de senha
[TUTORIAL] Sistema de Lanterna com Pilhas
Grama de terreno mudou textura e não consigo identificar o motivo
SAVE ME - Game em desenvolvimento para estudo.
[Sorteio] - Sorteio de uma Key gratuita para um dos meus assets!
Comandos touch
Fontes de sprites em pixel art
Ajustar movimentação da câmera
Rescale ou Redimenção da imagem.
[Resolvido] Animação Em Legacy
animação com avatar mask
[RESOLVIDO] troca de cena faz os Botoes UI não funcionarem
Direito autoral sobre imagem?
[TUTORIAL] Importando animação do mixamo para Unity3d.
Ajuda em código com Events!
[ANDROID]Cena TRAVA e não carrega ao tentar iniciar pelo menu
[TUTORIAL] - Como fazer download da OBB do jogo, in-game! (Android)
[RESOLVIDO] Problema com Varíavel Estática
[TUTORIAL] Sistema de fome, sede, barra de vida, barra de estamina, itens e dano por queda
[JOGO] Tetris em Unity - Para tutorial
Matematica e duvida de de calculos
Pessoa com conhecimento em Unity e criação de sprites
Cronor Estudios RECRUTANDO PARA EQUIPE! [Pagando]
Dúvida com Animação!
Adcionar Porcentagem "%" em um texto UI
Pack de áudio/ efeitos sonoros gratuitos.
Como fazer som de passos no Third Person User Control
Aparecer item comprado
[RESOLVIDO] Instanciar explosões dentro de uma area circular
Jogo para limitar a nave dentro da tela
Alterar caminho Application.persistentDataPath
[TUTORIAL] Como fazer um ponteiro de VELOCIDADE, RPM, etc na Unity
Acessar câmera frontal
Otimização de array vector3
[TUTORIAL] Converter uma variável String em Vetores
Problema no ontriggerenter!!!!
mover objetos "rigados"
Dúvida com Contador no Unity
Button
Anim em Gif
[RESOLVIDO] Camera ViewPort Rect
Blob Shadows
duvida em comentarios no c#
Tirar mais de uma foto
Easy Criatura Controle IA
Text multiuplayer
using UnityEngine.networking
Ajuda com script de escolhas de ações antes de iniciar jogo
ajuda em adcionar novos produtos
[RESOLVIDO] Input field enter
Controles desabilitando
Unity e windows 10
Ajuda com a Câmera (Culling Mask)
Script de Spawn Aleatório
[TUTORIAL] Mover, arremessar e girar objetos com o mouse
Como se faz um mini-mapa?
Geração procedural de mapa para a nova versão do Unity 2018
Como ter varios prefabs com o msm script e um nao alterar o outro?
Como acessar um script que esta no pai?
Movimentação por sqm
Como faço um som parar de tocar?
Mudar skin através de galeria do celular
COMO FAÇO O SISTEMA DE CHUVA ESTILO ETS2 COM GOTAS NO PARA BRISA?
Random.State Altera a seed de todos os scripts?
AI Enemy Ajuda
Easy Mesh Combiner MT - Combine suas malhas de maneira rápida e FÁCIL!
Captura de imagem
[Recomendação] Código Limpo
Sobre colisões em objetos 2D
[RESOLVIDO] COMO FAZ PARA DESATIVAR E ATIVAR UM BOTÃO UI PELO TRIGGER??
Dar recompensa ao ver propaganda ADMOB - CONSTRUCT 2 - Intel XDK
Erro Visual Studio Code .NETFramework v4.7.2
[TUTORIAL] Unity 5 - Wheel Collider, veículos, suspensão realista.
(Dúvida) iRDS - Inteligencia artificial para carros.
de flash pra unity
Como faço para por input de agachar
[RESOLVIDO] Unity 2018.3.0f2 (64-bit) não deixa apagar Componente Importado
PlayerPrefs??
[RESOLVIDO] Deslizar nas paredes (3D)
[RESOLVIDO] Ajuda com Instantiate e SetParent
[TUTORIAL] Luz Principal,Luz de Freio,Piscas para Carro,Moto,Caminhão,Ônibus,Etc...
Estou desenvolvendo jogo em FNA XNA e Nao consigo fazer o player agachar
Como fazer objetos com a mesma TAG não se colidir?
Participe da IDB Jam #1
Ajuda com modelo 3d de Casa
COMO PROJETAR ANIMAÇÕES VISUAIS E DE AÚDIO NO VISUAL STUDIO ( WINDOWS FORM)?
[RESOLVIDO] Cena em modo Portrait e Landscape
[TUTORIAL] Mover personagem com Touch, no estilo SUBWAY SURFERS
Ajuda em Level Design e arte
[RESOLVIDO] IAP não está funcionando depois que faço o build
Error ao Gerar a KeyStore do Apk Android
Iniciando com Scripted Events
Buscando Equipe para jogo de Terror!
[RESOLVIDO] Erro ao compilar pra android
Ontem à(s) 10:14 pm
Ontem à(s) 4:48 pm
Ontem à(s) 4:42 pm
Ontem à(s) 4:41 pm
Ontem à(s) 4:40 pm
Ontem à(s) 4:36 pm
Ontem à(s) 3:36 pm
Ontem à(s) 2:43 pm
Ontem à(s) 12:11 pm
Ontem à(s) 11:35 am
Ontem à(s) 10:15 am
Ter Fev 19, 2019 11:31 pm
Ter Fev 19, 2019 5:24 pm
Ter Fev 19, 2019 1:14 pm
Ter Fev 19, 2019 12:40 pm
Ter Fev 19, 2019 12:02 am
Seg Fev 18, 2019 9:28 pm
Seg Fev 18, 2019 10:27 am
Seg Fev 18, 2019 2:30 am
Dom Fev 17, 2019 11:00 pm
Dom Fev 17, 2019 10:58 pm
Dom Fev 17, 2019 8:35 pm
Dom Fev 17, 2019 7:51 pm
Dom Fev 17, 2019 5:39 pm
Dom Fev 17, 2019 3:34 pm
Dom Fev 17, 2019 2:54 pm
Dom Fev 17, 2019 2:30 pm
Dom Fev 17, 2019 2:13 pm
Dom Fev 17, 2019 1:11 pm
Dom Fev 17, 2019 12:42 am
Sab Fev 16, 2019 6:14 pm
Sab Fev 16, 2019 11:38 am
Sab Fev 16, 2019 7:46 am
Sex Fev 15, 2019 7:23 pm
Sex Fev 15, 2019 6:34 pm
Sex Fev 15, 2019 9:20 am
Qui Fev 14, 2019 9:00 pm
Qui Fev 14, 2019 8:58 pm
Qui Fev 14, 2019 8:53 pm
Qui Fev 14, 2019 11:57 am
Qua Fev 13, 2019 10:40 pm
Qua Fev 13, 2019 8:10 pm
Qua Fev 13, 2019 1:11 pm
Qua Fev 13, 2019 9:48 am
Qua Fev 13, 2019 9:25 am
Qua Fev 13, 2019 9:23 am
Ter Fev 12, 2019 11:03 pm
Ter Fev 12, 2019 4:15 pm
Ter Fev 12, 2019 4:07 pm
Ter Fev 12, 2019 2:07 pm
Ter Fev 12, 2019 1:14 pm
Ter Fev 12, 2019 4:32 am
Ter Fev 12, 2019 4:06 am
Ter Fev 12, 2019 2:03 am
Ter Fev 12, 2019 12:54 am
Ter Fev 12, 2019 12:52 am
Ter Fev 12, 2019 12:26 am
Ter Fev 12, 2019 12:26 am
Ter Fev 12, 2019 12:19 am
Ter Fev 12, 2019 12:13 am
Ter Fev 12, 2019 12:05 am
Seg Fev 11, 2019 11:46 pm
Seg Fev 11, 2019 11:28 pm
Seg Fev 11, 2019 10:43 pm
Seg Fev 11, 2019 10:39 pm
Seg Fev 11, 2019 10:30 pm
Seg Fev 11, 2019 10:26 pm
Seg Fev 11, 2019 8:09 pm
Dom Fev 10, 2019 7:23 pm
Dom Fev 10, 2019 5:59 pm
Dom Fev 10, 2019 7:19 am
Dom Fev 10, 2019 12:25 am
Sex Fev 08, 2019 12:40 am
Qui Fev 07, 2019 7:53 pm
Qui Fev 07, 2019 6:23 pm
Qua Fev 06, 2019 5:36 pm
Ter Fev 05, 2019 6:21 pm
Ter Fev 05, 2019 4:32 pm
Seg Fev 04, 2019 9:23 pm
Seg Fev 04, 2019 2:00 pm
Seg Fev 04, 2019 1:58 pm
Seg Fev 04, 2019 11:26 am
Dom Fev 03, 2019 10:39 pm
Dom Fev 03, 2019 3:36 pm
Dom Fev 03, 2019 12:23 pm
Dom Fev 03, 2019 12:54 am
Sab Fev 02, 2019 5:41 pm
Sab Fev 02, 2019 3:28 pm
Sab Fev 02, 2019 1:16 pm
Sex Fev 01, 2019 6:21 pm
Sex Fev 01, 2019 3:24 pm
Sex Fev 01, 2019 11:18 am
Qui Jan 31, 2019 11:17 pm
Qui Jan 31, 2019 9:24 pm
Qui Jan 31, 2019 8:17 pm
Qui Jan 31, 2019 7:21 pm
Qui Jan 31, 2019 3:06 pm
Qui Jan 31, 2019 1:09 pm
Qui Jan 31, 2019 8:27 am
Daniel Dória
Selzler
dstaroski
dstaroski
dstaroski
dstaroski
SmithSchuldiner
Daniel Dória
JohnRambo
marcos4503
marcos4503
Flávio
rafaelholanda
marcos4503
marcos4503
Zack2
Magnatah
Daniel Dória
fabricadegame
MarcosSchultz
MarcosSchultz
Daniel Dória
vitorhugo
fabricadegame
fabricadegame
Madness
AzulBananaFosco
AzulBananaFosco
adenilson romao
Madness
fabricadegame
guimaraf
Encracker
Flávio
Flávio
dstaroski
MarcosSchultz
MarcosSchultz
MarcosSchultz
AnderGames
MarcosSchultz
Zack2
Callyde Jr
Weslley
numb123
numb123
Isabela
Weslley
Weslley
Unidade3d5
richerd
hetrodo
Fabio Palacios
Encracker
Encracker
guimaraf
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
Kayke_27
AnderGames
Mark1nDeveloper
marcos4503
JohnRambo
guimaraf
Tegh
Kayke_27
wolney.almeida
Tegh
Weslley
guimaraf
JohnRambo
JohnRambo
glauco
speedluk
NKKF
gilgsjr
soohzinha
Lynx777
MayLeone
dimmuo
glauco
KAYLLONBR
JrdeAmorim
Édipo
Agios
vanderval
francisco barroso
bielTuvel
rodrigo Santos
TioUV

[TUTORIAL] AI Enemy ( Jogos de terror )

Página 2 de 3 Anterior  1, 2, 3  Seguinte

Ir em baixo

TUTORIAL Re: [TUTORIAL] AI Enemy ( Jogos de terror )

Mensagem por JohnRambo em Ter Set 27, 2016 5:56 pm

Amigo isso é assunto para outro tópico, crie um na área "Dúvidas em geral" e especifique com clareza o que você quer
JohnRambo
JohnRambo
Moderador

Masculino PONTOS : 2764
REPUTAÇÃO : 511
Idade : 18
Áreas de atuação : Unity;
Programação;
Modelagem;
Música e Sonorização;
Cursando Análise e Desenvolvimento de Sistemas;
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] AI Enemy ( Jogos de terror )

Mensagem por Sergio Pimentel em Ter Set 27, 2016 10:45 pm

John Rambo escreveu:Tipo no filme "Maze runner" ??
Na verdade, não assisti ao filme, mas vou fazê-lo pela indicação! Smile
Fico no aguardo da orientação para solucionar meu problema!

Sergio Pimentel
Iniciante
Iniciante

PONTOS : 887
REPUTAÇÃO : 0
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] AI Enemy ( Jogos de terror )

Mensagem por marx em Seg Jan 09, 2017 7:04 pm

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?

marx
Iniciante
Iniciante

PONTOS : 778
REPUTAÇÃO : 0
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] AI Enemy ( Jogos de terror )

Mensagem por rafaelllsd em Seg Jan 09, 2017 7:07 pm

@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?
Esse erro é porque você não esta usando a livraria AI coloque junto com as outras isso:
Código:
using UnityEngine.AI;
rafaelllsd
rafaelllsd
ProgramadorMaster

Masculino PONTOS : 2989
REPUTAÇÃO : 436
Idade : 18
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, HTML5.

Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] AI Enemy ( Jogos de terror )

Mensagem por marx em Seg Jan 09, 2017 7:23 pm

@rafaelllsd escreveu:
@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?
Esse erro é porque você não esta usando a livraria AI coloque junto com as outras isso:
Código:
using UnityEngine.AI;
vlw!!

marx
Iniciante
Iniciante

PONTOS : 778
REPUTAÇÃO : 0
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] AI Enemy ( Jogos de terror )

Mensagem por marx em Ter Jan 10, 2017 8:19 pm

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);
}

marx
Iniciante
Iniciante

PONTOS : 778
REPUTAÇÃO : 0
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] AI Enemy ( Jogos de terror )

Mensagem por MarcosSchultz em Qua Jan 11, 2017 1:19 am

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
MarcosSchultz
MarcosSchultz
Administrador

Masculino PONTOS : 61439
REPUTAÇÃO : 2154
Idade : 22
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] AI Enemy ( Jogos de terror )

Mensagem por Pedro Canassa Garcia em Qua Jan 18, 2017 10:10 pm

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!!

Pedro Canassa Garcia
Iniciante
Iniciante

PONTOS : 777
REPUTAÇÃO : 0
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] AI Enemy ( Jogos de terror )

Mensagem por GamersBR em Qui Jun 08, 2017 7:06 pm

Cara, eu estou usando a Unity 5.5, só que o inimigo não me segue, por mais perto que eu esteja dele
GamersBR
GamersBR
Membro
Membro

PONTOS : 1047
REPUTAÇÃO : 3
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] AI Enemy ( Jogos de terror )

Mensagem por PauloFR em Sex Jun 09, 2017 8:31 pm

@GamersBR escreveu:Cara, eu estou usando a Unity 5.5, só que o inimigo não me segue, por mais perto que eu esteja dele
Talvez o personagem não esteja encostando no bake do navmesh
PauloFR
PauloFR
Instrutor

Masculino PONTOS : 1977
REPUTAÇÃO : 364
Idade : 16
Áreas de atuação : Oque será uma área de atuação, se não um modo de manter-nos presos ao sistema

Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com/u8329

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] AI Enemy ( Jogos de terror )

Mensagem por MarcosSchultz em Ter Jun 13, 2017 2:18 pm

Pessoal que está com problemas, por favor, postem prints de como tudo está configurado.

Outra coisa, o Jogador está com a tag "Player" ?
MarcosSchultz
MarcosSchultz
Administrador

Masculino PONTOS : 61439
REPUTAÇÃO : 2154
Idade : 22
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] AI Enemy ( Jogos de terror )

Mensagem por marcelo123 em Qua Jun 14, 2017 11:57 pm

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;
}
}

marcelo123
Membro
Membro

PONTOS : 1433
REPUTAÇÃO : 1
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] AI Enemy ( Jogos de terror )

Mensagem por Joaopm1 em Ter Jun 20, 2017 6:32 pm

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?

Joaopm1
Avançado
Avançado

PONTOS : 792
REPUTAÇÃO : 12
Idade : 20
Áreas de atuação : Aprendiz de C# , Unity e Blender.
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] AI Enemy ( Jogos de terror )

Mensagem por BrazaTattoo em Sex Jun 15, 2018 6:45 pm

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)Piscadinha desde ja agradeço e parabens pelo excelente trabalho!

BrazaTattoo
Iniciante
Iniciante

PONTOS : 1084
REPUTAÇÃO : 0
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] AI Enemy ( Jogos de terror )

Mensagem por dstaroski em Sex Jun 15, 2018 8:27 pm

@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)Piscadinha desde ja agradeço e parabens pelo excelente trabalho!
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.

Abraço!
dstaroski
dstaroski
Instrutor

Masculino PONTOS : 4073
REPUTAÇÃO : 1051
Idade : 29
Áreas de atuação : Téc. Hardware e Redes, Programação C#, Asp .NET, HTML, CSS, Unity 3D

Respeito as regras :

Ver perfil do usuário http://diegodeoliveira.gamejolt.io/defeattheilluminatis

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] AI Enemy ( Jogos de terror )

Mensagem por BrazaTattoo em Sex Jun 15, 2018 10:05 pm

opa vou mandar dois prints, creio que possa ser por causa da versao mesmo por que usei o mesmo script sem alteraçoes.

BrazaTattoo
Iniciante
Iniciante

PONTOS : 1084
REPUTAÇÃO : 0
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] AI Enemy ( Jogos de terror )

Mensagem por BrazaTattoo em Sex Jun 15, 2018 10:15 pm

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

BrazaTattoo
Iniciante
Iniciante

PONTOS : 1084
REPUTAÇÃO : 0
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] AI Enemy ( Jogos de terror )

Mensagem por Mourao em Qua Jul 18, 2018 9:13 pm

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;
    }
}

Mourao
Iniciante
Iniciante

PONTOS : 333
REPUTAÇÃO : 0
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] AI Enemy ( Jogos de terror )

Mensagem por MarcosSchultz em Ter Jul 24, 2018 9:47 pm

@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
MarcosSchultz
MarcosSchultz
Administrador

Masculino PONTOS : 61439
REPUTAÇÃO : 2154
Idade : 22
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] AI Enemy ( Jogos de terror )

Mensagem por Mourao em Seg Jul 30, 2018 9:26 pm

Ela não ficou verdadeira em nenhum momento.

Mourao
Iniciante
Iniciante

PONTOS : 333
REPUTAÇÃO : 0
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] AI Enemy ( Jogos de terror )

Mensagem por MarcosSchultz em Seg Jul 30, 2018 9:51 pm

OK, tente utilizar este código abaixo e veja se está aparecendo a mensagem "entrou no if do raycast" enquanto você usa 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)
      {
         Debug.Log ("entrou no if do raycast");
         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;
   }
}



Se aparecer a mensagem, mas a variável nunca ficar verdadeira, então o seu jogador nao tem a tag "Player", ou não tem colisor, ou ele está na layer "Ignore Raycast"
MarcosSchultz
MarcosSchultz
Administrador

Masculino PONTOS : 61439
REPUTAÇÃO : 2154
Idade : 22
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] AI Enemy ( Jogos de terror )

Mensagem por Mourao em Seg Jul 30, 2018 10:25 pm

No caso não apareceu a mensagem mas realmente ele estava na layer "Ignore Raycast", troquei ele para "Default" e agora está perseguindo!!! Obrigado!

Mourao
Iniciante
Iniciante

PONTOS : 333
REPUTAÇÃO : 0
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] AI Enemy ( Jogos de terror )

Mensagem por kaufergomi em Sex Ago 03, 2018 7:54 pm

Gravidade Código Descrição Projeto Arquivo Linha Estado de Supressão
Erro CS0246 O nome do tipo ou do namespace "NavMeshAgent" não pode ser encontrado (está faltando uma diretiva using ou uma referência de assembly?) Assembly-CSharp C:\Users\Public\Documents\Unity Projects\terrorfant\Assets\Scenes\INTELIGENCIA.cs 6 Ativo

alguem me ajuda

kaufergomi
Iniciante
Iniciante

PONTOS : 243
REPUTAÇÃO : 2
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] AI Enemy ( Jogos de terror )

Mensagem por MarcosSchultz em Sex Ago 03, 2018 11:43 pm

@kaufergomi escreveu:Gravidade Código Descrição Projeto Arquivo Linha Estado de Supressão
Erro CS0246 O nome do tipo ou do namespace "NavMeshAgent" não pode ser encontrado (está faltando uma diretiva using ou uma referência de assembly?) Assembly-CSharp C:\Users\Public\Documents\Unity Projects\terrorfant\Assets\Scenes\INTELIGENCIA.cs 6 Ativo

alguem me ajuda


Tente utilizar a biblioteca


using UnityEngine.AI;


Última edição por MarcosSchultz em Dom Nov 25, 2018 4:13 am, editado 1 vez(es)
MarcosSchultz
MarcosSchultz
Administrador

Masculino PONTOS : 61439
REPUTAÇÃO : 2154
Idade : 22
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] AI Enemy ( Jogos de terror )

Mensagem por ArysonSantos em Ter Nov 20, 2018 2:37 pm

@MarcosSchultz escreveu:
INTELIGENCIA2:

Código:
//Corrigido

using UnityEngine;
using System.Collections;
using UnityEngine.AI;


public class INTELIGENCIA2 : MonoBehaviour {
 public Transform Player;
 private NavMeshAgent naveMesh;
 public 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,contadorOlhar ;
 private float cronometroDaPerseguicao,cronometroAtaque, cronometroOlhar;
 public bool BPassear, BOlhar, BPerseguir, BAtacar;

 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 && cronometroOlhar < 5){
 PerseguindoAlgo = false;
 BPassear = true;
 Passear();
 }
 if (DistanciaDoPlayer <= DistanciaDePercepcao && DistanciaDoPlayer > DistanciaDeSeguir && cronometroOlhar < 5) {
 if(VendoOPlayer == true){
 BOlhar = true;
 Olhar ();
 }else{
 BPassear = true;

 Passear();
 }
 }
 if (DistanciaDoPlayer <= DistanciaDeSeguir && DistanciaDoPlayer > DistanciaDeAtacar ) {
 if(VendoOPlayer == true){
 BPerseguir = true;
 Perseguir();
 PerseguindoAlgo = true;
 }else{
 BPassear = true;

 Passear();
 }
 }
 if (DistanciaDoPlayer <= DistanciaDeAtacar ) {
 BAtacar = true;
 Atacar();
 }
 //COMANDOS DE PASSEAR
 if (DistanciaDoAIPoint <= 2) {
 AIPointAtual = Random.Range (0, DestinosAleatorios.Length);
 BPassear = true;

 Passear();
 }
 //CONTADORES DE OLHAR
 if (contadorOlhar == true) {
 cronometroOlhar += Time.deltaTime;
 }
 if (cronometroOlhar >= 5 ) {
 Perseguir();

 }
 if (cronometroOlhar >= 8 ) {
 contadorOlhar = false;
 cronometroOlhar = 0;
 Perseguir();

 }
 //CONTADORES DE PERSEGUICAO
 if (contadorPerseguindoAlgo == true) {
 cronometroDaPerseguicao += Time.deltaTime;
 }
 if (cronometroDaPerseguicao >= 5 && VendoOPlayer == false) {
 contadorPerseguindoAlgo = false;
 cronometroDaPerseguicao = 0;
 PerseguindoAlgo = false;
 }
 // Freio do ATAQUE

 if (DistanciaDoPlayer <= DistanciaDeAtacar - 1) {
 naveMesh.destination = gameObject.transform.position;
 }

 // CONTADOR DE ATAQUE
 if (atacandoAlgo == true) {
 transform.LookAt (new Vector3 (Player.transform.position.x, transform.position.y, Player.transform.position.z));

 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 (){

 BOlhar = false;
 BPerseguir = false;
 BAtacar = false;

 if (PerseguindoAlgo == false) {
 naveMesh.acceleration = 5;
 naveMesh.speed = VelocidadeDePasseio;
 naveMesh.destination = DestinosAleatorios [AIPointAtual].position;
 } else if (PerseguindoAlgo == true) {
 contadorPerseguindoAlgo = true;
 }
 }
 void Olhar(){
 contadorOlhar = true;

 BPassear = false;

 BPerseguir = false;
 BAtacar = false;

 naveMesh.speed = 0;
 transform.LookAt (Player);
 }
 void Perseguir(){
 BPassear = false;
 BOlhar = false;

 BAtacar = false;

 naveMesh.acceleration = 8;
 naveMesh.speed = VelocidadeDePerseguicao;
 naveMesh.destination = Player.position;
 }
 void Atacar (){
 BPassear = false;
 BOlhar = false;
 BPerseguir = false;


 atacandoAlgo = true;
 }
}

ArysonSantos
Iniciante
Iniciante

PONTOS : 140
REPUTAÇÃO : 1
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Página 2 de 3 Anterior  1, 2, 3  Seguinte

Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum