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:
Pegar Valor int, Como?
Como consigo acessar a condição de um clipe dentro de um script pra fazer ele parar?
Pontuar em botões diferentes C#
Novo Trailer do jogo 13º Andar
Quando dou BAKE na cena, as sombras dos objetos somem!
POSSO PUBLICAR MEUS JOGOS USANDO VERSÃO GRATUITA DESSA ENGINE...
[TUTORIAL] Controle 3ª pessoa com animações mecânicas (root motion)
Como Configurar a Unity, para que modifique o seu Eixo?
Por que a UI da esse "BUG"?
Movimentação com RigidBOdy2D dando travadinhas
Motos Brasil - Jogo de Motos Brasileiras
onde esta o sun shaft na unity 2019?
Retirar Limites Do HINGE JOINT
Volleyguys - jogo de vôlei
Hinge Joint
caixa de som
[TUTORIAL] - 8 Dicas de otimização para mobile (Tópico 2) (Android)
[DUVIDA] UV MAPPING EM VÁRIOS OBJETOS - BLENDER
problemas com movimentação do personagem com root motion
Como fazer o fov reduzir quando a telca não estiver sendo pressionada ?
Loop Event Onclick
[Em Desenvolvimento] Battles of Worlds
[DÚVIDA] Modelo do Sketchup não importa corretamente
Tem como texturizar apenas uma face do cubo no Unity?
[TUTORIAL] Sistema de DIA E NOITE completo, com luzes noturnas e SISTEMA DE NUVENS
Como fazer pro meu tiro matar o inimigo?
[DUVIDA] Perlin Noise 3d?
The freddy krueger's pie (Game)
Como fazer um sistema de conetar objetos 3d ao passar proximo de um Trigger?
Árvores sem billboard
distancia
Porque meu objeto não está sendo ativado? unity 2D
[TUTORIAL] Third Person Shooter
Como ativar som ao passar por cima de um objeto?
[PROJETO] A ULTIMA CASA DA RUA
Meu novo game
[DUVIDA SIMPLES]
Projeto Game de Terror
probleminha ao usar o Platform Effector2d
Criar game multi player unity 3d
[TUTORIAL] Banco de dados || MySQL
Touch para 2 Jogadores
Set Height do terreno
XML, suporte e utilização.
Travar animação
[DIVULGAÇÃO DE AULA] Como criar jogos sem saber programação
[RESOLVIDO] Como fazer o canvas ficar atrás do personagem? Unity 2D
[TUTORIAL] Controlador em Primeira Pessoa "compacto" FPS
Tem como modificar a textura em tempo real?
TEXTO DO BUTTON
ALTERAR A VELOCIDADE APENAS DE UMA ANIMAÇÃO VIA SCRIPT
Valor de App de Realidade Aumentada.
Como Fasso Para O HingeJoint Virar em Duas Direçoes?
Pegar objeto tocado em dispositivo mobile
[TUTORIAL] Criar Analógico Virtual UI Para Mobile.
Arquivos com Casa, arvores, Gramas, Objetos3d Etc...
Unity 2019.1.1 não entra em Modo Play
Fazer personagem descer uma tirolesa
Duvida script de loading com controle
Como implementar Gyroscope no FPSController ?
Bug de Iluminação Unity 2019
Não consigo dar dano nem destruir um objeto
SCRIPT DE MOVIMENTAÇÃO E CÂMERA
[PEDIDO DE TUTORIAL] Schultz fazer uma série *jogo de corrida*
[FAZER TUTORIAL] Como faço para clicar em um objeto e visualizar, girar...
Como finalizar a textura no blender
É possivel detectar colisão de um objeto filho pelo objeto pai?
Como atrasar uma animação Unity 2D
AJUDA COM SCRIPT DE LOAD DE CENA
[RESOLVIDO] Como mudar a cor do Text?
[PEDIDOS DE TUTORIAIS]
saber se os objetos colidiram
navmeshagent Duvida sobre a distancia percorrida
[TUTORIAL] Mover objetos 2D e conectar em lugares específicos
Balão de Conversação
[TUTORIAL] Como usar FREE EASY CRIATURA CONTROLE IA
Vale apena colocar esse Asset na Asset Store?
Como faço para que mostre algo que vai instanciar?
TRANSFORM DA POSIÇÃO NÃO SEGUE A ANIMAÇÃO
[TUTORIAL] Sistema de Lanterna com Pilhas
[TUTORIAL] Sistema simples para VOLTAR NO TEMPO, Unity 3D
UNITY, TRANSFORM.TRANSLATE ATRAVESSA PAREDES
Como Fazer Agregação via script do Unity?
( Ajuda) gráficos longe ruim
Verificar se objeto ja existe em um Lista
Fog of War
Scope Script
Animar um Número de Vezes
AJUDA COM MUDANÇA DE CENA
Porque meu aúdio não funciona na colisao do player com o objeto?
[RESOLVIDO] UNITY OBJETOS COM MESMO SCRIPT DE FORMA INDEPENDENTE
Comunicação entre scripts
[TUTORIAL] Script de pulo para jogos 3D em geral (Unity - C#)
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
Esse erro de código é da Unity ou da versão do Script?
Game Take All
PRESSIONAR BOTÃO TOUCH NO ANDROID SERÁ O MESMO QUE PRESSIONAR UMA TECLA DO TECLADO REAL
PROBLEMAS AO DAR BUILD
PRESSIONAR BOTÃO TOUCH NO ANDROID SERÁ O MESMO QUE PRESSIONAR UMA TECLA DO TECLADO FÍSICO
Hoje à(s) 12:51 am
Ontem à(s) 10:03 pm
Ontem à(s) 9:41 pm
Ontem à(s) 8:44 pm
Ontem à(s) 7:19 pm
Ontem à(s) 1:02 pm
Qua Maio 22, 2019 8:47 pm
Qua Maio 22, 2019 6:39 pm
Qua Maio 22, 2019 12:25 pm
Qua Maio 22, 2019 2:42 am
Qua Maio 22, 2019 12:41 am
Ter Maio 21, 2019 9:58 pm
Ter Maio 21, 2019 8:03 pm
Ter Maio 21, 2019 7:38 pm
Ter Maio 21, 2019 7:13 pm
Ter Maio 21, 2019 5:38 pm
Ter Maio 21, 2019 5:22 pm
Ter Maio 21, 2019 3:44 pm
Ter Maio 21, 2019 1:21 pm
Ter Maio 21, 2019 10:17 am
Ter Maio 21, 2019 1:13 am
Seg Maio 20, 2019 11:46 pm
Seg Maio 20, 2019 11:27 pm
Seg Maio 20, 2019 9:24 pm
Seg Maio 20, 2019 8:28 pm
Seg Maio 20, 2019 7:44 pm
Seg Maio 20, 2019 7:15 pm
Seg Maio 20, 2019 7:10 pm
Seg Maio 20, 2019 9:59 am
Seg Maio 20, 2019 9:57 am
Seg Maio 20, 2019 9:11 am
Seg Maio 20, 2019 9:04 am
Seg Maio 20, 2019 5:54 am
Dom Maio 19, 2019 10:34 pm
Dom Maio 19, 2019 7:57 pm
Dom Maio 19, 2019 2:51 pm
Sab Maio 18, 2019 10:26 pm
Sab Maio 18, 2019 9:45 pm
Sab Maio 18, 2019 2:27 pm
Sab Maio 18, 2019 1:59 pm
Sex Maio 17, 2019 10:30 am
Qui Maio 16, 2019 8:14 pm
Qui Maio 16, 2019 8:10 pm
Qui Maio 16, 2019 6:46 pm
Qui Maio 16, 2019 5:31 pm
Qui Maio 16, 2019 4:08 pm
Qui Maio 16, 2019 12:14 pm
Qui Maio 16, 2019 9:30 am
Qua Maio 15, 2019 4:13 pm
Qua Maio 15, 2019 3:03 pm
Qua Maio 15, 2019 10:17 am
Qua Maio 15, 2019 12:45 am
Seg Maio 13, 2019 7:34 pm
Seg Maio 13, 2019 3:06 pm
Dom Maio 12, 2019 7:52 pm
Dom Maio 12, 2019 7:13 pm
Dom Maio 12, 2019 1:27 pm
Sab Maio 11, 2019 2:03 pm
Sab Maio 11, 2019 1:12 pm
Sab Maio 11, 2019 12:58 pm
Sab Maio 11, 2019 9:06 am
Sex Maio 10, 2019 6:46 pm
Sex Maio 10, 2019 1:34 pm
Sex Maio 10, 2019 12:39 pm
Sex Maio 10, 2019 9:47 am
Qui Maio 09, 2019 8:18 pm
Qui Maio 09, 2019 7:41 pm
Qui Maio 09, 2019 11:44 am
Qui Maio 09, 2019 10:38 am
Qua Maio 08, 2019 9:49 pm
Qua Maio 08, 2019 1:56 pm
Qua Maio 08, 2019 12:55 pm
Qua Maio 08, 2019 9:33 am
Qua Maio 08, 2019 9:23 am
Qua Maio 08, 2019 8:52 am
Qua Maio 08, 2019 7:24 am
Ter Maio 07, 2019 11:00 pm
Ter Maio 07, 2019 6:46 pm
Ter Maio 07, 2019 5:06 pm
Ter Maio 07, 2019 3:23 pm
Ter Maio 07, 2019 12:50 am
Seg Maio 06, 2019 11:58 pm
Seg Maio 06, 2019 9:27 pm
Seg Maio 06, 2019 2:06 pm
Seg Maio 06, 2019 1:52 pm
Seg Maio 06, 2019 9:43 am
Dom Maio 05, 2019 9:41 pm
Dom Maio 05, 2019 9:00 pm
Dom Maio 05, 2019 7:41 pm
Dom Maio 05, 2019 10:53 am
Sab Maio 04, 2019 4:30 pm
Sab Maio 04, 2019 1:33 pm
Sex Maio 03, 2019 8:41 pm
Sex Maio 03, 2019 4:59 pm
Sex Maio 03, 2019 4:34 pm
Sex Maio 03, 2019 3:40 pm
Sex Maio 03, 2019 4:59 am
Qui Maio 02, 2019 11:23 pm
Qui Maio 02, 2019 8:41 pm
ffabim
artplayer
guimaraf
Patrick
BrazaTattoo
guimaraf
dstaroski
glauco
glauco
Nabuco
dkrazor
diegopds
williangamesbr4021
Daniel Pires da Silva
williangamesbr4021
JhoowGamer
marcos4503
osiasbezerra
hendrick22
diegopds
ffabim
dkrazor
gcs13
diegopds
fabricadegame
hendrick22
NKKF
Patrick
diegopds
diegopds
diegopds
diegopds
fabricadegame
diegopds
guimaraf
thales.ulisses
rafaelllsd
thales.ulisses
nando07
artplayer
Khrys
GabriG07
SuperGamer
Tegh
MarcioGSouza
igorsp3
darkrj
gabrieldeelay
glauco
lTHINGl
artplayer
numb123
williangamesbr4021
Marcelo Santos
Édipo
Callyde Jr
ronigleydson
SergioDB
loganout
loganout
MarcosSchultz
NKKF
JohnRambo
JohnRambo
lidog
diegopds
LucasRangel
darkrj
Diego Felix
dkrazor
Gabryellx007
rafaelholanda
UesleiUsl
eljkb
artplayer
kraulim
glauco
NKKF
osiasbezerra
robertodf
guimaraf
ronigleydson
osiasbezerra
deikson
numb123
Valakinhas
NKKF
osiasbezerra
BrazaTattoo
dstaroski
diegodiego01
Callyde Jr
jogador432
glauco
Tegh
Tegh
richardfalcos
BrazaTattoo
richardfalcos

[TUTORIAL] Inteligência artificial, inimigo e AIPoints

Página 1 de 2 1, 2  Seguinte

Ir em baixo

TUTORIAL [TUTORIAL] Inteligência artificial, inimigo e AIPoints

Mensagem por MarcosSchultz em Ter Jan 06, 2015 8:45 pm

[TUTORIAL] Inteligência artificial, inimigo e AIPoints Sem%2Bt%C3%ADtulo

Estive trabalhando neste script, e finalmente está pronto. trata-se de uma inteligência artificial simples, usando AIPoints

O inimigo se move randomicamente entre os AIPoints e se ve o player, começa a persegui-lo e s conseguir, ataca-lo também

se perder o player de vista, volta para a rotina de andar aleatoriamente pelos AIpoints.



Como usar? Primeiramente coloque a tag " Player " no seu player

agora jogue este script no seu inimigo ( o nome do script deve ser " AIPOINTS " ) :: 

Código:
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
[RequireComponent(typeof(CharacterController))]
public class AIPOINTS : MonoBehaviour {
 public Transform[] AIPoints; // PONTOS POR ONDE O INIMIGO PODE TRANSITAR
 private List<Transform> ListaDeAiPoints = new List<Transform>(); // LISTA QUE IRA GUARDAR OS AIPoints DISPONIVEIS PARA O INIMIGO ANDAR NO MOMENTO
 public float velocidadeDeMovimento = 5,DistanciaDeObservacao = 30,DistanciaDeSeguir = 20,DistanciaDeAtaque = 2; // VARIAVEIS A SEREM CONFIGURADAS
 private float distanciaDoJogador,cronometroTempoNoLocal;
 private int AIpoitAtual; // AIPoint ATUAL PARA ONDE O INIMIGO ESTA SE MOVENDDO
 private GameObject Player;
 private bool VendoOPlayer,EsperandoNoLocal,SeguindoOPlayer;
 public float TempoNoLocal = 0.001f; // TEMPO QUE O INIMIGO AGUARDA NO AIPoint ATE COMEÇAR A IR PARA O PROXIMO
 void Start (){  
 Player = GameObject.FindWithTag ("Player"); // PLAYER = OBJETO QUE CONTEM A TAG PLAYER
 for (int x=0; x<AIPoints.Length; x++) { // AQUI EU FAÇO UM FOR EM TODOS OS OBJETOS DA VARIAVEL AIPoints
 Vector3 de = transform.position; // A VARIAVEL " de " RECEBE A POSIÇAO ATUAL DO INIMIGO
 Vector3 para = AIPoints [x].transform.position; // A VARIAVEL " para " RECEBE A POSIÇAO DO AIpointAtual
 if (!Physics.Linecast (de, para)) { // AQUI EU CHEGO SE O CAMINHO ENTRE O INIMIGO E O AIPOINT ESTA LIVRE, SE ESTIVER:
 if(!ListaDeAiPoints.Contains( AIPoints [x] )){ // AQUI EU CHECO SE O ELEMENTO JA ESTA NA LISTA, SE NAO ESTA, FAZ ISSO ABAIXO:
 ListaDeAiPoints.Add(AIPoints [x]); //ADICIONA O AIPoint[X] NA LISTA
 }
 }
 else if (Physics.Linecast (de, para)) { // SEM TEM ALGUMA COISA ENTRE O AIPoint ATUAL E O INIMIGO
 ListaDeAiPoints.Remove(AIPoints [x]) ; // REMOVE O ITEM AIPoint[X] ATUAL DA LISTA, PARA TORNA-LO INDISPONIVEL
 }
 }
 }
 void Update () {
 //================================================RAYCAST ( INIMIGO ESTA VENDO O PLAYER? )=========================================================//
 RaycastHit hit; // DECLARO UM RAYCAST
 Vector3 deOnde = transform.position; //A VARIAVEL deOnde RECEBE A POSIÇAO ATUAL DO INIMIGO
 Vector3 paraOnde = Player.transform.position;//A VARIAVEL paraOnde RECEBE A POSIÇAO ATUAL DO INIMIGO
 Vector3 direction = paraOnde - deOnde; // O VETOR direction RECEBE A POSIÇAO CORRESPONDENTE A B-A, OU SEJA, O VETOR paraOnde - o vetor deOnde
 if (Physics.Raycast (transform.position, direction, out hit, 1000) && distanciaDoJogador < DistanciaDeObservacao) { // SE RAYCAST, E SE A DISTANCIA DO PLAYER FOR MENOR DO QUE A MAXDISTANCIA
 if (hit.collider.gameObject.CompareTag ("Player")) { // SE A TAG DO OBJETO QUE O RAYCAST COLIDIU FOR "PLAYER"
 VendoOPlayer = true; // VARIAVEL VendoOPlayer FICA VERDADEIRA
 } else { // SE NAO
 VendoOPlayer = false;// VARIAVEL VendoOPlayer FICA FALSA
 }
 }
 //===========================================LINECAST ( DEIXAR ACESSIVEL APENAS OS AIPOINTS VISIVEIS)=========================================//
 if (EsperandoNoLocal == true) { // SE A VARIAVEL EsperandoNoLocal ESTIVER VERDADEIRA
 for (int x=0; x<AIPoints.Length; x++) { // AQUI EU FAÇO UM FOR EM TODOS OS OBJETOS DA VARIAVEL AIPoints
 Vector3 de = transform.position; // A VARIAVEL " de " RECEBE A POSIÇAO ATUAL DO INIMIGO
 Vector3 para = AIPoints [x].transform.position; // A VARIAVEL " para " RECEBE A POSIÇAO DO AIpointAtual
 if (!Physics.Linecast (de, para)) { // AQUI EU CHEGO SE O CAMINHO ENTRE O INIMIGO E O AIPOINT ESTA LIVRE, SE ESTIVER:
 Debug.DrawLine(de,para); // APENAS FAÇO UM DEBUG ( OPCIONAL ) PARA VER A TRAJETORIA DAS LINHAS
 if(!ListaDeAiPoints.Contains( AIPoints [x] )){ // AQUI EU CHECO SE O ELEMENTO JA ESTA NA LISTA, SE NAO ESTA, FAZ ISSO ABAIXO:
 ListaDeAiPoints.Add(AIPoints [x]); //ADICIONA O AIPoint[X] NA LISTA
 }
 }
 else if (Physics.Linecast (de, para)) { // SEM TEM ALGUMA COISA ENTRE O AIPoint ATUAL E O INIMIGO
 Debug.DrawLine(de,para);// APENAS FAÇO UM DEBUG ( OPCIONAL ) PARA VER A TRAJETORIA DAS LINHAS
 ListaDeAiPoints.Remove(AIPoints [x]) ; // REMOVE O ITEM AIPoint[X] ATUAL DA LISTA, PARA TORNA-LO INDISPONIVEL
 }
 }
 EsperandoNoLocal = false; // A VARIAVEL EsperandoNoLocal FICA FALSA
 }
 //==================================================== COMANDO PARA FAZER O INIMIGO ANDAR PELOS AIPOINTS======================================//
 distanciaDoJogador = Vector3.Distance (Player.transform.position, transform.position); // MEDE A DISTANCIA ENTRE O INIMIGO E O PLAYER
 if (distanciaDoJogador >= DistanciaDeObservacao || VendoOPlayer == false && EsperandoNoLocal == false) { // SE A DISTANCIA ENTRE INIMIGO E PLAYER FOR MENOR DO QUE A DISTANCIA DE OBSERVAÇAO E VAR'S....
 if (AIpoitAtual < ListaDeAiPoints.Count) { // CHECAGEM PRA NAO DAR ERRO DE ARRAY
 Vector3 target = ListaDeAiPoints [AIpoitAtual].transform.position;//A VARIAVEL target RECEBE A POSIÇAO DO AIpointAtual
 transform.LookAt (target);//O INIMIGO OLHA NA DIREÇAO DO AIPOINT SELECIONADO ( O AIpointAtual )
 transform.position = Vector3.MoveTowards (transform.position, target, velocidadeDeMovimento * Time.deltaTime); // MOVE O PALYER EM DIREÇAO AO AIpointAtual
 if (transform.position == ListaDeAiPoints [AIpoitAtual].transform.position) { // SE A POSIÇAO DO PLAYER FOR IGUAL A POSIÇAO DO AIpointAtual, OU SEJA, CHEGOU NO DESTINO
 cronometroTempoNoLocal+=Time.deltaTime; // COMEÇA A CONTAR O CRONOMETRO DE ESPERA NO LOCAL
 EsperandoNoLocal = true; // A VARIAVEL EsperandoNoLocal FICA VERDADEIRA PARA INDICAR QUE ESTA ESPERANDO
 }
 if(cronometroTempoNoLocal >= TempoNoLocal){ // SE JA ESPEROU O TEMPO QUE DEVERIA ESPERAR NO LOCAL
 cronometroTempoNoLocal = 0; // ZERA O CRONOMETRO PARA PODER REUTILIZAR ELE
 int NumeroDeElementosDaLista2 = ListaDeAiPoints.Count; // UMA INT COM NOME NumeroDeElementosDaLista2 RECEBE O NUMERO DE ITENS QUE TEM NA LISTA
 AIpoitAtual = Random.Range (0, NumeroDeElementosDaLista2); // A VARIAVEL AIpoitAtual RECEBE UM VALOR ALEATORIO ENTRE 0 E O O NUMERO DE ITENS QUE TEM NA LISTA
 }
 }
 }
 //================================================= COMANDOS PARA CHECAR DISTANCIA, OLHAR E SEGUIR================================================//
 else if (distanciaDoJogador >= DistanciaDeSeguir && distanciaDoJogador < DistanciaDeObservacao && VendoOPlayer == true) { // SE ESTA PERTO PARA OLHAR MAS AINDA E LONGE PARA SEGUIR:
 Olhar (); // VOID PARA O INIMIGO FICAR OLHANDO PARA O PLAYER
 }else if (distanciaDoJogador <= DistanciaDeSeguir && VendoOPlayer == true) {  //SE JA ESTA PERTO O SUFICIENTE PARA SEGUIR E ESTA VENDO O PLAYER
 Seguir ();  // VOID PARA O INIMIGO SEGUIR O PLAYER
 }
 //=======================================================CORRIGIR BUGS DE INDEX RANGE=============================================================//
 if (AIpoitAtual >= ListaDeAiPoints.Count) { // SE O AIpoitAtual TIVER UM VALOR MAIOR DO QUE O MAXIMO DE ELEMENTOS QUE EXISTEM NA LISTA
 AIpoitAtual = ListaDeAiPoints.Count -1; // A VARIAVEL AIpoitAtual RECEBE O NUMERO DE ELEMENTOS DA LISTA -1, ISSO EVITARA BUGS
 }else if (AIpoitAtual <= 0) { //SE O AIpoitAtual TIVER UM VALOR MENOR DO QUE ZERO:
 AIpoitAtual = 0;//AIpoitAtual RECEBERA O VALOR ZERO, ISSO EVITARA BUGS
 }
 //==========================================FAZER O PLAYER RECEBER DANO AO CHEGAR PERTO DO INIMIGO================================================//
 if (distanciaDoJogador <= DistanciaDeAtaque) { // SE A DISTANCIA ENTRE O INIMIGO E O PLAYER FOR MENOR DO QUE A DISTANCIA DE ATAQUE
 VidaPlayer.RecebendoDano = true; // A VARIAVEL RecebendoDano DO SCRIPT VidaPlayer FICA VERDADEIRA
 } else if (distanciaDoJogador > DistanciaDeAtaque) { // SE A DISTANCIA ENTRE O INIMIGO E O PLAYER FOR MAIOR DO QUE A DISTANCIA DE ATAQUE
 VidaPlayer.RecebendoDano = false; // A VARIAVEL RecebendoDano DO SCRIPT VidaPlayer FICA FALSA
 }
 //===============================================ESTAVA SEGUINDO MAS PAROU DE VER O PLAYER========================================================//
 if (SeguindoOPlayer == true && VendoOPlayer == false) { // SE ESTA SEGUINDO O PLAYER MAS NAO ESTA VENDO ELE
 for (int x=0; x<AIPoints.Length; x++) { // AQUI EU FAÇO UM FOR EM TODOS OS OBJETOS DA VARIAVEL AIPoints
 Vector3 de = transform.position;  // A VARIAVEL " de " RECEBE A POSIÇAO ATUAL DO INIMIGO
 Vector3 para = AIPoints [x].transform.position;  // A VARIAVEL " para " RECEBE A POSIÇAO DO AIpointAtual
 if (!Physics.Linecast (de, para)) { // AQUI EU CHEGO SE O CAMINHO ENTRE O INIMIGO E O AIPOINT ESTA LIVRE, SE ESTIVER:
 Debug.DrawLine(de,para); // APENAS FAÇO UM DEBUG ( OPCIONAL ) PARA VER A TRAJETORIA DAS LINHAS
 if(!ListaDeAiPoints.Contains( AIPoints [x] )){ // AQUI EU CHECO SE O ELEMENTO JA ESTA NA LISTA, SE NAO ESTA, FAZ ISSO ABAIXO:
 ListaDeAiPoints.Add(AIPoints [x]); //ADICIONA O AIPoint[X] NA LISTA
 }
 }
 else if (Physics.Linecast (de, para)) { // SEM TEM ALGUMA COISA ENTRE O AIPoint ATUAL E O INIMIGO
 Debug.DrawLine(de,para);// APENAS FAÇO UM DEBUG ( OPCIONAL ) PARA VER A TRAJETORIA DAS LINHAS
 ListaDeAiPoints.Remove(AIPoints [x]) ; // REMOVE O ITEM AIPoint[X] ATUAL DA LISTA, PARA TORNA-LO INDISPONIVEL
 }
 }
 int NumeroDeElementosDaLista2 = ListaDeAiPoints.Count; // A VARIAVEL NumeroDeElementosDaLista2 RECEBE O NUMERO DE ELEMENTOS CONTIDOS NA LISTA
 AIpoitAtual = Random.Range (0, NumeroDeElementosDaLista2); // A VARIAVEL AIpoitAtual RECEBE UM VALOR ALEATORIO ENTRE 0 E O O NUMERO DE ITENS QUE TEM NA LISTA
 SeguindoOPlayer = false; // A VARIAVEL SeguindoOPlayer RECEBE FALSE
 }
 }
 //================================================================= OUTRAS VOIDS=======================================================================//
 void Olhar (){ // VOID QUE FAZ O INIMIGO OLHAR PARA O PLAYER
 Vector3 OlharPlayer = Player.transform.position; // O VETOR OlharPlayer RECEBE A POSIÇAO DO PLAYER
 transform.LookAt (OlharPlayer); // O INIMIGO PLHA EM DIREÇAO AO PLAYER
 }
 void Seguir (){
 SeguindoOPlayer = true; // A VARIAVEL SeguindoOPlayer FICA VERDADEIRA
 Vector3 SeguirPlayer = Player.transform.position; // O VETOR SeguirPlayer RECEBE A POSIÇAO DO PLAYER
 transform.position = Vector3.MoveTowards (transform.position, SeguirPlayer, velocidadeDeMovimento * Time.deltaTime); // O INIMIGO SE MOVE EM DIREÇAO AO PLAYER
 }
}

Depois disso, jogue este script no seu player( o nome do script deve ser " VidaPlayer " ) :

Código:
using UnityEngine;
using System.Collections;
public class VidaPlayer : MonoBehaviour {
 public static bool RecebendoDano; //VARIAVEL ESTATICA QUE INDICA SE ESTA RECEBENDO DANO OU NAO
 public float tempoPorAtaque = 1.5f; // TEMPO MINIMO ENTRE CADA ATAQUE QUE O INIMIGO PODE DAR
 private float cronometroDeAtaque; // CRONOMETRO QUE CONTROLA O TEMPO DOS ATAQUES
 public int VidaDoPlayer = 100; // VIDA DO PERSONAGEM
 public int DanoPorAtaque = 40;
 void Start (){
 RecebendoDano = false; // A VARIAVEL RecebendoDano RECEBE FALSO
 }
 void Update (){
 if (RecebendoDano == true) { // SE RecebendoDano ESTA VERDADEIRO
 cronometroDeAtaque += Time.deltaTime; // O CRONOMETRO COMEÇA A CONTAR
 } else { // SE NAO, OU SEJA, SE RecebendoDano ESTA FALSO
 cronometroDeAtaque = 0; // O CRONOMETRO RECEBE 0
 }
 if (cronometroDeAtaque >= tempoPorAtaque) { // SE O CRONOMETRO ULTRAPASSOU O TEMPO POR ATAQUE
 cronometroDeAtaque = 0; // CRONOMETRO RECEBE 0
 VidaDoPlayer = VidaDoPlayer - DanoPorAtaque; // A VIDA DO PLAYER RECEBE O VALOR DELA MESMA MENOS O DANO DO ATAQUE
 }
 if (VidaDoPlayer <= 0) { // SE A VIDA FOR MENOR OU IGUAL A 0
 Application.Quit (); // SAI DO JOGO
 }
 }
}

Os dois scripts extão COMPLETAMENTE comentados para um melhor entendimento.


Agora basta configurar as variáveis dos dois scripts e jogar AIpoints( pontos por onde o inimigo irá se mover ) na variavel  " AIPoints " do script do seu inimigo

Dúvidas postem ae


Última edição por MarcosSchultz em Ter Jun 07, 2016 9:15 pm, editado 1 vez(es)
MarcosSchultz
MarcosSchultz
Administrador

Masculino PONTOS : 61777
REPUTAÇÃO : 2245
Idade : 22
Áreas de atuação : Administrador do fórum
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints Aad8pUi

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

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Inteligência artificial, inimigo e AIPoints

Mensagem por Dionilson em Qua Jan 07, 2015 3:16 pm

Quando ele persegue o player ele ignora os aipoints e fica travado em objetos do cenário. Como fazer o inimigo evitar esses objetos, e perseguir o player através de um caminho específico pelos aipoints assim n travando em objetos ou "paredes"?

Dionilson
Iniciante
Iniciante

Masculino PONTOS : 1620
REPUTAÇÃO : 2
Idade : 27
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Inteligência artificial, inimigo e AIPoints

Mensagem por MarcosSchultz em Qua Jan 07, 2015 4:34 pm

Isto é possivel apenas com A*pathfinding, más é algo extremamente complexo... eu precisaria de 4 vídeoAulas para explicar como funciona...


Uma solução boa para isto é usar o NaveMesh da propria Unity
MarcosSchultz
MarcosSchultz
Administrador

Masculino PONTOS : 61777
REPUTAÇÃO : 2245
Idade : 22
Áreas de atuação : Administrador do fórum
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints Aad8pUi

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

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Inteligência artificial, inimigo e AIPoints

Mensagem por Dionilson em Qua Jan 07, 2015 5:00 pm

Você pode explicar ou mostrar como usar o NaveMesh da unity para essa situação?

Dionilson
Iniciante
Iniciante

Masculino PONTOS : 1620
REPUTAÇÃO : 2
Idade : 27
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Inteligência artificial, inimigo e AIPoints

Mensagem por MarcosSchultz em Qua Jan 07, 2015 5:42 pm

Este aqui :D

MarcosSchultz
MarcosSchultz
Administrador

Masculino PONTOS : 61777
REPUTAÇÃO : 2245
Idade : 22
Áreas de atuação : Administrador do fórum
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints Aad8pUi

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

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Inteligência artificial, inimigo e AIPoints

Mensagem por Dionilson em Qua Jan 07, 2015 9:14 pm

Mano Brigado cara, me ajudo pakas mano vlws mesmo.

Dionilson
Iniciante
Iniciante

Masculino PONTOS : 1620
REPUTAÇÃO : 2
Idade : 27
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Inteligência artificial, inimigo e AIPoints

Mensagem por Alan Porfirio em Ter Abr 21, 2015 6:08 pm

Marcos eu coloquei o script no inimigo mas não funcionou.
Era pra colocar objetos vazio no transform?Ou era pra fazer de outro jeito.

Alan Porfirio
Iniciante
Iniciante

PONTOS : 1535
REPUTAÇÃO : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Inteligência artificial, inimigo e AIPoints

Mensagem por MarcosSchultz em Ter Abr 21, 2015 7:37 pm

tem que seguir passo a passo como eu citei...

nenhuma variavel pode ficar vazia, você deve linkar os AIPoints e tudo mais, senão vai dar erro
MarcosSchultz
MarcosSchultz
Administrador

Masculino PONTOS : 61777
REPUTAÇÃO : 2245
Idade : 22
Áreas de atuação : Administrador do fórum
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints Aad8pUi

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

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Inteligência artificial, inimigo e AIPoints

Mensagem por Rafael Pirani em Dom Abr 26, 2015 1:56 am

Da dando erro de index!

Rafael Pirani
Iniciante
Iniciante

PONTOS : 1490
REPUTAÇÃO : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Inteligência artificial, inimigo e AIPoints

Mensagem por MarcosSchultz em Dom Abr 26, 2015 12:53 pm

Tem que anexar os AIPoints na array deles
MarcosSchultz
MarcosSchultz
Administrador

Masculino PONTOS : 61777
REPUTAÇÃO : 2245
Idade : 22
Áreas de atuação : Administrador do fórum
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints Aad8pUi

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

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Inteligência artificial, inimigo e AIPoints

Mensagem por Lucas Garcia Frade em Dom Abr 26, 2015 6:48 pm

[TUTORIAL] Inteligência artificial, inimigo e AIPoints 2lkfg1z
Ta dando erro de Index como pode ver, mas linkei tudo nas variaveis certas, o que esta errado?

Lucas Garcia Frade
Avançado
Avançado

Masculino PONTOS : 1771
REPUTAÇÃO : 9
Idade : 17
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Inteligência artificial, inimigo e AIPoints

Mensagem por MarcosSchultz em Dom Abr 26, 2015 11:12 pm

Por favor, copie o código inteiro que você está utilizando e cole aqui para eu analiza-lo ?
MarcosSchultz
MarcosSchultz
Administrador

Masculino PONTOS : 61777
REPUTAÇÃO : 2245
Idade : 22
Áreas de atuação : Administrador do fórum
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints Aad8pUi

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

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Inteligência artificial, inimigo e AIPoints

Mensagem por Lucas Garcia Frade em Seg Abr 27, 2015 9:37 am

Código:
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
[RequireComponent(typeof(CharacterController))]
public class AIPOINTS : MonoBehaviour {
   public static bool Inimigo;
   public Transform[] AIPoints; // PONTOS POR ONDE O INIMIGO PODE TRANSITAR
   private List<Transform> ListaDeAiPoints = new List<Transform>(); // LISTA QUE IRA GUARDAR OS AIPoints DISPONIVEIS PARA O INIMIGO ANDAR NO MOMENTO
   public float velocidadeDeMovimento = 5,DistanciaDeObservacao = 30,DistanciaDeSeguir = 20,DistanciaDeAtaque = 2; // VARIAVEIS A SEREM CONFIGURADAS
   private float distanciaDoJogador,cronometroTempoNoLocal;
   private int AIpoitAtual; // AIPoint ATUAL PARA ONDE O INIMIGO ESTA SE MOVENDDO
   private GameObject Player;
   private bool VendoOPlayer,EsperandoNoLocal,SeguindoOPlayer;
   public float TempoNoLocal = 0.001f; // TEMPO QUE O INIMIGO AGUARDA NO AIPoint ATE COMEÇAR A IR PARA O PROXIMO
   void Start (){ 
      Inimigo = true;
      Screen.lockCursor = true;
      Player = GameObject.FindWithTag ("Player"); // PLAYER = OBJETO QUE CONTEM A TAG PLAYER
      for (int x=0; x<AIPoints.Length; x++) { // AQUI EU FAÇO UM FOR EM TODOS OS OBJETOS DA VARIAVEL AIPoints
         Vector3 de = transform.position; // A VARIAVEL " de " RECEBE A POSIÇAO ATUAL DO INIMIGO
         Vector3 para = AIPoints [x].transform.position; // A VARIAVEL " para " RECEBE A POSIÇAO DO AIpointAtual
         if (!Physics.Linecast (de, para)) { // AQUI EU CHEGO SE O CAMINHO ENTRE O INIMIGO E O AIPOINT ESTA LIVRE, SE ESTIVER:
            if(!ListaDeAiPoints.Contains( AIPoints [x] )){ // AQUI EU CHECO SE O ELEMENTO JA ESTA NA LISTA, SE NAO ESTA, FAZ ISSO ABAIXO:
               ListaDeAiPoints.Add(AIPoints [x]); //ADICIONA O AIPoint[X] NA LISTA
            }
         }
         else if (Physics.Linecast (de, para)) { // SEM TEM ALGUMA COISA ENTRE O AIPoint ATUAL E O INIMIGO
            ListaDeAiPoints.Remove(AIPoints [x]) ; // REMOVE O ITEM AIPoint[X] ATUAL DA LISTA, PARA TORNA-LO INDISPONIVEL
         }
      }
   }
   void Update () {
      if (Inimigo){
      //================================================RAYCAST ( INIMIGO ESTA VENDO O PLAYER? )=========================================================//
      RaycastHit hit; // DECLARO UM RAYCAST
      Vector3 deOnde = transform.position; //A VARIAVEL deOnde RECEBE A POSIÇAO ATUAL DO INIMIGO
      Vector3 paraOnde = Player.transform.position;//A VARIAVEL paraOnde RECEBE A POSIÇAO ATUAL DO INIMIGO
      Vector3 direction = paraOnde - deOnde; // O VETOR direction RECEBE A POSIÇAO CORRESPONDENTE A B-A, OU SEJA, O VETOR paraOnde - o vetor deOnde
      if (Physics.Raycast (transform.position, direction, out hit, 1000) && distanciaDoJogador < DistanciaDeObservacao) { // SE RAYCAST, E SE A DISTANCIA DO PLAYER FOR MENOR DO QUE A MAXDISTANCIA
         if (hit.collider.gameObject.CompareTag ("Player")) { // SE A TAG DO OBJETO QUE O RAYCAST COLIDIU FOR "PLAYER"
            VendoOPlayer = true; // VARIAVEL VendoOPlayer FICA VERDADEIRA
         } else { // SE NAO
            VendoOPlayer = false;// VARIAVEL VendoOPlayer FICA FALSA
         }
      }
      //===========================================LINECAST ( DEIXAR ACESSIVEL APENAS OS AIPOINTS VISIVEIS)=========================================//
      if (EsperandoNoLocal == true) { // SE A VARIAVEL EsperandoNoLocal ESTIVER VERDADEIRA
         for (int x=0; x<AIPoints.Length; x++) { // AQUI EU FAÇO UM FOR EM TODOS OS OBJETOS DA VARIAVEL AIPoints
            Vector3 de = transform.position; // A VARIAVEL " de " RECEBE A POSIÇAO ATUAL DO INIMIGO
            Vector3 para = AIPoints [x].transform.position; // A VARIAVEL " para " RECEBE A POSIÇAO DO AIpointAtual
            if (!Physics.Linecast (de, para)) { // AQUI EU CHEGO SE O CAMINHO ENTRE O INIMIGO E O AIPOINT ESTA LIVRE, SE ESTIVER:
               Debug.DrawLine(de,para); // APENAS FAÇO UM DEBUG ( OPCIONAL ) PARA VER A TRAJETORIA DAS LINHAS
               if(!ListaDeAiPoints.Contains( AIPoints [x] )){ // AQUI EU CHECO SE O ELEMENTO JA ESTA NA LISTA, SE NAO ESTA, FAZ ISSO ABAIXO:
                  ListaDeAiPoints.Add(AIPoints [x]); //ADICIONA O AIPoint[X] NA LISTA
               }
            }
            else if (Physics.Linecast (de, para)) { // SEM TEM ALGUMA COISA ENTRE O AIPoint ATUAL E O INIMIGO
               Debug.DrawLine(de,para);// APENAS FAÇO UM DEBUG ( OPCIONAL ) PARA VER A TRAJETORIA DAS LINHAS
               ListaDeAiPoints.Remove(AIPoints [x]) ; // REMOVE O ITEM AIPoint[X] ATUAL DA LISTA, PARA TORNA-LO INDISPONIVEL
            }
         }
         EsperandoNoLocal = false; // A VARIAVEL EsperandoNoLocal FICA FALSA
      }
      //==================================================== COMANDO PARA FAZER O INIMIGO ANDAR PELOS AIPOINTS======================================//
      distanciaDoJogador = Vector3.Distance (Player.transform.position, transform.position); // MEDE A DISTANCIA ENTRE O INIMIGO E O PLAYER
      if (distanciaDoJogador >= DistanciaDeObservacao || VendoOPlayer == false && EsperandoNoLocal == false) { // SE A DISTANCIA ENTRE INIMIGO E PLAYER FOR MENOR DO QUE A DISTANCIA DE OBSERVAÇAO E VAR'S....
         if (AIpoitAtual < ListaDeAiPoints.Count) { // CHECAGEM PRA NAO DAR ERRO DE ARRAY
            Vector3 target = ListaDeAiPoints [AIpoitAtual].transform.position;//A VARIAVEL target RECEBE A POSIÇAO DO AIpointAtual
            transform.LookAt (target);//O INIMIGO OLHA NA DIREÇAO DO AIPOINT SELECIONADO ( O AIpointAtual )
            transform.position = Vector3.MoveTowards (transform.position, target, velocidadeDeMovimento * Time.deltaTime); // MOVE O PALYER EM DIREÇAO AO AIpointAtual
            if (transform.position == ListaDeAiPoints [AIpoitAtual].transform.position) { // SE A POSIÇAO DO PLAYER FOR IGUAL A POSIÇAO DO AIpointAtual, OU SEJA, CHEGOU NO DESTINO
               cronometroTempoNoLocal+=Time.deltaTime; // COMEÇA A CONTAR O CRONOMETRO DE ESPERA NO LOCAL
               EsperandoNoLocal = true; // A VARIAVEL EsperandoNoLocal FICA VERDADEIRA PARA INDICAR QUE ESTA ESPERANDO
            }
            if(cronometroTempoNoLocal >= TempoNoLocal){ // SE JA ESPEROU O TEMPO QUE DEVERIA ESPERAR NO LOCAL
               cronometroTempoNoLocal = 0; // ZERA O CRONOMETRO PARA PODER REUTILIZAR ELE
               int NumeroDeElementosDaLista2 = ListaDeAiPoints.Count; // UMA INT COM NOME NumeroDeElementosDaLista2 RECEBE O NUMERO DE ITENS QUE TEM NA LISTA
               AIpoitAtual = Random.Range (0, NumeroDeElementosDaLista2); // A VARIAVEL AIpoitAtual RECEBE UM VALOR ALEATORIO ENTRE 0 E O O NUMERO DE ITENS QUE TEM NA LISTA
            }
         }
      }
      //================================================= COMANDOS PARA CHECAR DISTANCIA, OLHAR E SEGUIR================================================//
      else if (distanciaDoJogador >= DistanciaDeSeguir && distanciaDoJogador < DistanciaDeObservacao && VendoOPlayer == true) { // SE ESTA PERTO PARA OLHAR MAS AINDA E LONGE PARA SEGUIR:
         Olhar (); // VOID PARA O INIMIGO FICAR OLHANDO PARA O PLAYER
      }else if (distanciaDoJogador <= DistanciaDeSeguir && VendoOPlayer == true) {  //SE JA ESTA PERTO O SUFICIENTE PARA SEGUIR E ESTA VENDO O PLAYER
         Seguir ();  // VOID PARA O INIMIGO SEGUIR O PLAYER
      }
      //=======================================================CORRIGIR BUGS DE INDEX RANGE=============================================================//
      if (AIpoitAtual >= ListaDeAiPoints.Count) { // SE O AIpoitAtual TIVER UM VALOR MAIOR DO QUE O MAXIMO DE ELEMENTOS QUE EXISTEM NA LISTA
         AIpoitAtual = ListaDeAiPoints.Count -1; // A VARIAVEL AIpoitAtual RECEBE O NUMERO DE ELEMENTOS DA LISTA -1, ISSO EVITARA BUGS
      }else if (AIpoitAtual <= 0) { //SE O AIpoitAtual TIVER UM VALOR MENOR DO QUE ZERO:
         AIpoitAtual = 0;//AIpoitAtual RECEBERA O VALOR ZERO, ISSO EVITARA BUGS
      }
      //==========================================FAZER O PLAYER RECEBER DANO AO CHEGAR PERTO DO INIMIGO================================================//
      if (distanciaDoJogador <= DistanciaDeAtaque) { // SE A DISTANCIA ENTRE O INIMIGO E O PLAYER FOR MENOR DO QUE A DISTANCIA DE ATAQUE
         PlayerVida.RecebendoDano = true; // A VARIAVEL RecebendoDano DO SCRIPT VidaPlayer FICA VERDADEIRA
      } else if (distanciaDoJogador > DistanciaDeAtaque) { // SE A DISTANCIA ENTRE O INIMIGO E O PLAYER FOR MAIOR DO QUE A DISTANCIA DE ATAQUE
         PlayerVida.RecebendoDano = false; // A VARIAVEL RecebendoDano DO SCRIPT VidaPlayer FICA FALSA
      }
      //===============================================ESTAVA SEGUINDO MAS PAROU DE VER O PLAYER========================================================//
      if (SeguindoOPlayer == true && VendoOPlayer == false) { // SE ESTA SEGUINDO O PLAYER MAS NAO ESTA VENDO ELE
         for (int x=0; x<AIPoints.Length; x++) { // AQUI EU FAÇO UM FOR EM TODOS OS OBJETOS DA VARIAVEL AIPoints
            Vector3 de = transform.position;  // A VARIAVEL " de " RECEBE A POSIÇAO ATUAL DO INIMIGO
            Vector3 para = AIPoints [x].transform.position;  // A VARIAVEL " para " RECEBE A POSIÇAO DO AIpointAtual
            if (!Physics.Linecast (de, para)) { // AQUI EU CHEGO SE O CAMINHO ENTRE O INIMIGO E O AIPOINT ESTA LIVRE, SE ESTIVER:
               Debug.DrawLine(de,para); // APENAS FAÇO UM DEBUG ( OPCIONAL ) PARA VER A TRAJETORIA DAS LINHAS
               if(!ListaDeAiPoints.Contains( AIPoints [x] )){ // AQUI EU CHECO SE O ELEMENTO JA ESTA NA LISTA, SE NAO ESTA, FAZ ISSO ABAIXO:
                  ListaDeAiPoints.Add(AIPoints [x]); //ADICIONA O AIPoint[X] NA LISTA
               }
            }
            else if (Physics.Linecast (de, para)) { // SEM TEM ALGUMA COISA ENTRE O AIPoint ATUAL E O INIMIGO
               Debug.DrawLine(de,para);// APENAS FAÇO UM DEBUG ( OPCIONAL ) PARA VER A TRAJETORIA DAS LINHAS
               ListaDeAiPoints.Remove(AIPoints [x]) ; // REMOVE O ITEM AIPoint[X] ATUAL DA LISTA, PARA TORNA-LO INDISPONIVEL
            }
         }
         int NumeroDeElementosDaLista2 = ListaDeAiPoints.Count; // A VARIAVEL NumeroDeElementosDaLista2 RECEBE O NUMERO DE ELEMENTOS CONTIDOS NA LISTA
         AIpoitAtual = Random.Range (0, NumeroDeElementosDaLista2); // A VARIAVEL AIpoitAtual RECEBE UM VALOR ALEATORIO ENTRE 0 E O O NUMERO DE ITENS QUE TEM NA LISTA
         SeguindoOPlayer = false; // A VARIAVEL SeguindoOPlayer RECEBE FALSE
      }
     }
   }
   //================================================================= OUTRAS VOIDS=======================================================================//
   void Olhar (){ // VOID QUE FAZ O INIMIGO OLHAR PARA O PLAYER
      Vector3 OlharPlayer = Player.transform.position; // O VETOR OlharPlayer RECEBE A POSIÇAO DO PLAYER
      transform.LookAt (OlharPlayer); // O INIMIGO PLHA EM DIREÇAO AO PLAYER
   }
   void Seguir (){
      SeguindoOPlayer = true; // A VARIAVEL SeguindoOPlayer FICA VERDADEIRA
      Vector3 SeguirPlayer = Player.transform.position; // O VETOR SeguirPlayer RECEBE A POSIÇAO DO PLAYER
      transform.position = Vector3.MoveTowards (transform.position, SeguirPlayer, velocidadeDeMovimento * Time.deltaTime); // O INIMIGO SE MOVE EM DIREÇAO AO PLAYER
   }
}

Lucas Garcia Frade
Avançado
Avançado

Masculino PONTOS : 1771
REPUTAÇÃO : 9
Idade : 17
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Inteligência artificial, inimigo e AIPoints

Mensagem por Lucas Garcia Frade em Seg Abr 27, 2015 9:37 am

É o mesmo

Lucas Garcia Frade
Avançado
Avançado

Masculino PONTOS : 1771
REPUTAÇÃO : 9
Idade : 17
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Inteligência artificial, inimigo e AIPoints

Mensagem por MarcosSchultz em Seg Abr 27, 2015 12:33 pm

Testei novamente com os 2 scripts originais do tutorial e funcionou perfeitamente. basta seguir passo a passo tudo que escrevi
MarcosSchultz
MarcosSchultz
Administrador

Masculino PONTOS : 61777
REPUTAÇÃO : 2245
Idade : 22
Áreas de atuação : Administrador do fórum
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints Aad8pUi

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

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Inteligência artificial, inimigo e AIPoints

Mensagem por Jhonny_Ayllet em Dom Maio 24, 2015 12:17 pm

eu tipo to fazendo um jogo onde o player é uma "nave" q atira e tudo mais.. queria fazer dos meus inimigos naves semelhantes q atirassem ao me ver e tudo mais.. esta AI vai funcionar para eles ? outra coisa como o cenário se passa no espaço, os obstáculos podem ser asteroides, e pontos de transição por onde ele viaja podem ser gameobjects vazios msm certo ?

Jhonny_Ayllet
Iniciante
Iniciante

PONTOS : 1462
REPUTAÇÃO : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Inteligência artificial, inimigo e AIPoints

Mensagem por MarcosSchultz em Dom Maio 24, 2015 1:35 pm

Um jogo assim requer uma AI mais especifica, vai ser meio dificil adaptar essa no seu jogo
MarcosSchultz
MarcosSchultz
Administrador

Masculino PONTOS : 61777
REPUTAÇÃO : 2245
Idade : 22
Áreas de atuação : Administrador do fórum
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints Aad8pUi

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

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Inteligência artificial, inimigo e AIPoints

Mensagem por Chilinger em Sab Jul 11, 2015 7:24 am

Marcos se eu pegar waypoints e colocar varios na tela para carros ele andaram normalmente como trafego de rua

Chilinger
MembroAvançado

Masculino PONTOS : 2014
REPUTAÇÃO : 34
Idade : 25
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Inteligência artificial, inimigo e AIPoints

Mensagem por MarcosSchultz em Sab Jul 11, 2015 12:38 pm

Sim, más funcionará somente se as quadras tiverem predios ou coisas que barrem a visão da diagonal oposta e se so tiver 1 carro, pois se o linecast for em direção a um AIPoint e tiver um veiculo na frente ele vai eliminar o AIPoint...

esta AI é especificamente desenvolvida para inimigos... para carros precisaria de algo mais elaborado
MarcosSchultz
MarcosSchultz
Administrador

Masculino PONTOS : 61777
REPUTAÇÃO : 2245
Idade : 22
Áreas de atuação : Administrador do fórum
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints Aad8pUi

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

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Inteligência artificial, inimigo e AIPoints

Mensagem por Chilinger em Sab Jul 11, 2015 1:10 pm

Poderia me ajudar com ela entao por que assim se eu colocar colisao em td vai dar certo por que eu queria fazer uma linha com wayponts indo e outra vindo com varios carros

Chilinger
MembroAvançado

Masculino PONTOS : 2014
REPUTAÇÃO : 34
Idade : 25
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Inteligência artificial, inimigo e AIPoints

Mensagem por Orixinals em Sab Set 05, 2015 1:15 pm

Como eu configuro , onde o inimigo vai andar , no caso quais pontos ele vai transitar , pois analisei o comando que você postou , mas não encontrei um lugar especifico que eu possa alterar valores, no caso os pontos de transição, no caso eu quero fazer com que o inimigo transite pelo meu mapa todo ,e caso eu esteja perto dele , ele saia de sua transição , para me seguir.

==EDITADO==
DESCULPE !
Estava procurando no script e achei onde colocar os waypoints , achava que onde era colocado os waypoints , era diretamente no código, mas na verdade é no script do inimigo (interface), sou iniciante e estou começando no unity a pouco tempo, vlw pessoal !.

Orixinals
Iniciante
Iniciante

PONTOS : 1369
REPUTAÇÃO : 2
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Inteligência artificial, inimigo e AIPoints

Mensagem por cosmoplay em Seg Nov 23, 2015 8:54 pm

Marcos tenho um problema que so fui perceber agora,
tentei fazer do meu jeito mais tive um problema.
o inimigo so me persegue se eu olho para ele com um angulo um pouco aberto, quase que olhando para a cara dele,
se eu olho apenas para suas pernas ou para o chão ele não me persegue, ai voltei a usar o seu e o problema continua, os scripts estão idênticos ao seu. acho que pode ser outra coisa sem ser o script mais não tenho minima ideia
se puder me ajudar ...
cosmoplay
cosmoplay
Avançado
Avançado

Masculino PONTOS : 1773
REPUTAÇÃO : 39
Idade : 21
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Inteligência artificial, inimigo e AIPoints

Mensagem por MarcosSchultz em Seg Nov 23, 2015 11:08 pm

@cosmoplay escreveu:Marcos tenho um problema que so fui perceber agora,
tentei fazer do meu jeito mais tive um problema.
o inimigo so me persegue se eu olho para ele com um angulo um pouco aberto, quase que olhando para a cara dele,
se eu olho apenas para suas pernas ou para o chão ele não me persegue, ai voltei a usar o seu e o problema continua, os scripts estão idênticos ao seu. acho que pode ser outra coisa sem ser o script mais não tenho minima ideia
se puder me ajudar ...

Cara, não tem muito sentido estar acontecendo isto, pois nem tem função de OnBecameVisible ou Invisible...

O script está no seu player ou na sua camera?
MarcosSchultz
MarcosSchultz
Administrador

Masculino PONTOS : 61777
REPUTAÇÃO : 2245
Idade : 22
Áreas de atuação : Administrador do fórum
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints Aad8pUi

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

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Inteligência artificial, inimigo e AIPoints

Mensagem por cosmoplay em Qua Dez 02, 2015 6:20 pm

no player
cosmoplay
cosmoplay
Avançado
Avançado

Masculino PONTOS : 1773
REPUTAÇÃO : 39
Idade : 21
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Inteligência artificial, inimigo e AIPoints

Mensagem por MarcosSchultz em Qui Dez 03, 2015 12:37 am

@cosmoplay escreveu:no player
Crie um tópico específico para este problema, relatando especificamente o que ocorre, postando prints e os scripts que você utiliza...

Não tem muito sentido estar acontecendo isto ai...
MarcosSchultz
MarcosSchultz
Administrador

Masculino PONTOS : 61777
REPUTAÇÃO : 2245
Idade : 22
Áreas de atuação : Administrador do fórum
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints Aad8pUi

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

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Inteligência artificial, inimigo e AIPoints

Mensagem por gagasilva em Dom Dez 06, 2015 3:58 pm

http://prntscr.com/9b1p6w <----- Link do erro, coloquei tudo certo, e espalhei 30 aipoints e os coloquei no script do nimigo e AIPOINTS e da esse erro

gagasilva
Iniciante
Iniciante

PONTOS : 1270
REPUTAÇÃO : 0
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Inteligência artificial, inimigo e AIPoints

Mensagem por MarcosSchultz em Seg Dez 07, 2015 12:11 am

@gagasilva escreveu:http://prntscr.com/9b1p6w <----- Link do erro, coloquei tudo certo, e espalhei 30 aipoints e os coloquei no script do nimigo e AIPOINTS e da esse erro

Preciso de prints do seu Player, do inimigo, das configs do script no inimigo
MarcosSchultz
MarcosSchultz
Administrador

Masculino PONTOS : 61777
REPUTAÇÃO : 2245
Idade : 22
Áreas de atuação : Administrador do fórum
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints Aad8pUi

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

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Inteligência artificial, inimigo e AIPoints

Mensagem por iahGod em Qua Jan 20, 2016 7:29 pm

Oi, funcionou quase tudo aqui, mas meu inimigo ele não fica andando para os UiPoints, ele fica parado no lugar que eu coloquei... Em vermelhos são os pontos e amarelo o inimigo, que é um esfera. Não fiz nenhuma alterações nos scripts em coloquei todos os transforms dos pontos no script, sabe o que pode ser?

[TUTORIAL] Inteligência artificial, inimigo e AIPoints Screenshot_2
iahGod
iahGod
Programador

Masculino PONTOS : 1600
REPUTAÇÃO : 78
Idade : 20
Áreas de atuação : -Programador na Murano Games;


Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints WvDYdlf

Ver perfil do usuário https://muranogames.blogspot.com/

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Inteligência artificial, inimigo e AIPoints

Mensagem por MarcosSchultz em Qui Jan 21, 2016 2:16 am

iagokennedyy escreveu:Oi, funcionou quase tudo aqui, mas meu inimigo ele não fica andando para os UiPoints, ele fica parado no lugar que eu coloquei... Em vermelhos são os pontos e amarelo o inimigo, que é um esfera. Não fiz nenhuma alterações nos scripts em coloquei todos os transforms dos pontos no script, sabe o que pode ser?

[TUTORIAL] Inteligência artificial, inimigo e AIPoints Screenshot_2

O player tem tag "Player" ???
MarcosSchultz
MarcosSchultz
Administrador

Masculino PONTOS : 61777
REPUTAÇÃO : 2245
Idade : 22
Áreas de atuação : Administrador do fórum
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints Aad8pUi

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

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Inteligência artificial, inimigo e AIPoints

Mensagem por iahGod em Qui Jan 21, 2016 6:33 am

Sim, tem... eu paguei tudo e refiz, funcionou, alguma coisa devo ter esquecido :p
iahGod
iahGod
Programador

Masculino PONTOS : 1600
REPUTAÇÃO : 78
Idade : 20
Áreas de atuação : -Programador na Murano Games;


Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints WvDYdlf

Ver perfil do usuário https://muranogames.blogspot.com/

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Inteligência artificial, inimigo e AIPoints

Mensagem por JohnnyKills em Qui Jan 21, 2016 12:40 pm

Vejo esse script, "simples", então realmente tenho a certeza que eu gosto é de trabalhar com gráficos kkkkkk Marcos, a quanto tempo você trabalha com programação? Você manja de muita coisa kkk

JohnnyKills
Membro
Membro

PONTOS : 1372
REPUTAÇÃO : 0
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Inteligência artificial, inimigo e AIPoints

Mensagem por MarcosSchultz em Qui Jan 21, 2016 1:36 pm

@JohnnyKills escreveu:Vejo esse script, "simples", então realmente tenho a certeza que eu gosto é de trabalhar com gráficos kkkkkk Marcos, a quanto tempo você trabalha com programação? Você manja de muita coisa kkk

Acho que vai completar uns 3 anos logo logo
MarcosSchultz
MarcosSchultz
Administrador

Masculino PONTOS : 61777
REPUTAÇÃO : 2245
Idade : 22
Áreas de atuação : Administrador do fórum
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints Aad8pUi

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

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Inteligência artificial, inimigo e AIPoints

Mensagem por Guisao666 em Seg Jul 25, 2016 6:34 pm

Muito obrigado cara.

Guisao666
Iniciante
Iniciante

PONTOS : 1232
REPUTAÇÃO : 0
Áreas de atuação : Iniciante em programação da linguagem C#.
Iniciante em Level Designer.
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Inteligência artificial, inimigo e AIPoints

Mensagem por dinho em Sab Ago 13, 2016 12:39 pm

Olá Galera adaptei um Script ( java para C#) de  uma IA para meu jogo de luta, que é dentro de um ringue , e não seria necessário AIPonints , mas esta dando "Erro"  gostaria de ajuda para esse meu problema ou uma idéia melhor para melhorar a jogabilidade. Talvez o Script do Marcos sem Aipoints, não sei como adaptar.
 Esse é o meu Script:
Código:
using UnityEngine;
using System.Collections;

public class InimigoSegue : MonoBehaviour {


 private int animI;//numeros de comportamentos
 public GameObject Player ;  // Player
 private Vector3 DistV; //Distancia em x,y e z
 public Quaternion rotQ;
 public float rmaxF;
 public float rmedF;
 public float rminF;
 public bool atacB;
 private Animator Animator_Oponente;
 // Use this for initialization
 void Start () {

 animI = 1;
 rmaxF =10;
 rmedF =5;
 rminF =3;
 atacB = false;
 Animator_Oponente = GetComponent<Animator> ();
 }
 
 // Update is called once per frame
 void Update () {


 if(animI==1){Animator_Oponente.Play("Idlle");}
 if(animI==2){Animator_Oponente.GetBool("Running");transform.Translate(0,0,3*Time.deltaTime);}
 if(animI==3){Animator_Oponente.SetTrigger("TriggerKick");}
 if(animI==4){Animator_Oponente.SetTrigger("TriggerCross");}


 
 //Variaveis
 
 DistV = transform.position - Player.transform.position; //distancia
 rotQ = Quaternion.LookRotation (DistV); // local de rotação
 
 
 //Função
 if (atacB==true)
 {transform.rotation.eulerAngles.y = rotQ.eulerAngles.y +180 ;}
 
 if(DistV.x<= rminF && DistV.x >= rminF && DistV.z >= -rminF && DistV.z <= rminF)
 {animI=2;} else
 
 if(DistV.x<= rmedF && DistV.x >= -rmedF && DistV.z <= rmedF && DistV.z >= -rmedF)
 {animI=3; atacB = true;}else

 if (atacB == true) {
 if(DistV.x<= rmaxF && DistV.x >= -rmaxF && DistV.z <= rmaxF && DistV.z >= -rmaxF)
 {animI = 2 ;}
 else
 { animI=1 ; atacB = false;}
 }
 }
}

O erro esta no "Quaternion"
Assets/Scripts/InimigoSegue.cs(46,37): error CS1612: Cannot modify a value type return value of `UnityEngine.Quaternion.eulerAngles'. Consider storing the value in a temporary variable

e esse:
Assets/Scripts/InimigoSegue.cs(46,28): error CS1612: Cannot modify a value type return value of `UnityEngine.Transform.rotation'. Consider storing the value in a temporary variable
  Não estou conseguindo solucionar.
dinho
dinho
Membro
Membro

Masculino PONTOS : 1403
REPUTAÇÃO : 5
Áreas de atuação : Desenhista e Modelador 3D.
Modelagem em Blender.
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints WvDYdlf

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

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Inteligência artificial, inimigo e AIPoints

Mensagem por artplayer em Sab Ago 13, 2016 2:26 pm

Você vai ter que criar um novo vector3 pra passar o valor.

Tipo ...

Código:
transform.rotation.eulerAngles = new Vector3 (ValorX, ValorY, ValorZ);
artplayer
artplayer
ProgramadorMaster

Masculino PONTOS : 1859
REPUTAÇÃO : 298
Idade : 34
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints Aad8pUi

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Inteligência artificial, inimigo e AIPoints

Mensagem por dinho em Sab Ago 13, 2016 7:03 pm

Cara não deu certo... Será q tem algum erro nesse Script que eu não estou enxergando.
dinho
dinho
Membro
Membro

Masculino PONTOS : 1403
REPUTAÇÃO : 5
Áreas de atuação : Desenhista e Modelador 3D.
Modelagem em Blender.
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints WvDYdlf

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

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Inteligência artificial, inimigo e AIPoints

Mensagem por MarcosSchultz em Dom Ago 14, 2016 11:21 pm

Cria um tópico e posta o seu script, que podemos ver.
MarcosSchultz
MarcosSchultz
Administrador

Masculino PONTOS : 61777
REPUTAÇÃO : 2245
Idade : 22
Áreas de atuação : Administrador do fórum
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints Aad8pUi

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

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Inteligência artificial, inimigo e AIPoints

Mensagem por alemaopessoa em Seg Ago 29, 2016 1:32 pm

@MarcosSchultz escreveu:Tem que anexar os AIPoints na array deles

como posso fazer isso? sou iniciante e não sei como fazer isso. alguém poderia me ajudar?

alemaopessoa
Iniciante
Iniciante

PONTOS : 1021
REPUTAÇÃO : 1
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Inteligência artificial, inimigo e AIPoints

Mensagem por AndyShow em Seg Ago 29, 2016 1:39 pm

@alemaopessoa escreveu:
@MarcosSchultz escreveu:Tem que anexar os AIPoints na array deles

como posso fazer isso? sou iniciante e não sei como fazer isso. alguém poderia me ajudar?

Assistiu o Video Tutorial ?

AndyShow
AndyShow
MembroAvançado

Masculino PONTOS : 2942
REPUTAÇÃO : 574
Idade : 36
Áreas de atuação : Blender e Unity
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints WvDYdlf

Ver perfil do usuário http://mundounity3d.forumbom.com/

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Inteligência artificial, inimigo e AIPoints

Mensagem por alemaopessoa em Seg Ago 29, 2016 2:02 pm

kara, eu ja coloquei a nav mesh agent no meu inimigo. primeiro eu copiei e colei o script "AIPOINTS" no inimigo, depois copiei e colei o script "VIDA PLAYER" no player, e agora por ultimo eu coloquei a nav mesh agent no inimigo e ainda ta dando erro de index. oque há de eraado? sou iniciante. ainda to apredendo. alguem poderia me explicar oque fazer detalhadamente?

alemaopessoa
Iniciante
Iniciante

PONTOS : 1021
REPUTAÇÃO : 1
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Inteligência artificial, inimigo e AIPoints

Mensagem por AndyShow em Seg Ago 29, 2016 2:04 pm

Faz o "Bake" do Terreno ou Plano no Windows/Navigation ?
AndyShow
AndyShow
MembroAvançado

Masculino PONTOS : 2942
REPUTAÇÃO : 574
Idade : 36
Áreas de atuação : Blender e Unity
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints WvDYdlf

Ver perfil do usuário http://mundounity3d.forumbom.com/

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Inteligência artificial, inimigo e AIPoints

Mensagem por alemaopessoa em Seg Ago 29, 2016 2:45 pm

eu fiz o "bake" e ainda ta com o erro de index.

alemaopessoa
Iniciante
Iniciante

PONTOS : 1021
REPUTAÇÃO : 1
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Inteligência artificial, inimigo e AIPoints

Mensagem por alemaopessoa em Seg Ago 29, 2016 7:52 pm

eu preciso criar os "waypoints"? se sim, como faço pra criar?

alemaopessoa
Iniciante
Iniciante

PONTOS : 1021
REPUTAÇÃO : 1
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Inteligência artificial, inimigo e AIPoints

Mensagem por AndyShow em Seg Ago 29, 2016 8:50 pm

Sim, vc Cria GameObjects Vazios ou Esferas,Cubos (Sem Colisao) etc... oque vc quiser e quantos quiser,Coloca no Lugar que vc quiser que o AI vá,e Linka no Script na Variável AIPoints
AndyShow
AndyShow
MembroAvançado

Masculino PONTOS : 2942
REPUTAÇÃO : 574
Idade : 36
Áreas de atuação : Blender e Unity
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints WvDYdlf

Ver perfil do usuário http://mundounity3d.forumbom.com/

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Inteligência artificial, inimigo e AIPoints

Mensagem por alemaopessoa em Seg Ago 29, 2016 9:25 pm

@AndyShow escreveu:Sim, vc Cria GameObjects Vazios ou Esferas,Cubos (Sem Colisao) etc... oque vc quiser e quantos quiser,Coloca no Lugar que vc quiser que o AI vá,e Linka no Script na Variável AIPoints

então mano, ja criei varios gameobjects vazios. o meu problema agora é saber como linkar. nao sei onde eu posso fazer isso no script.

alemaopessoa
Iniciante
Iniciante

PONTOS : 1021
REPUTAÇÃO : 1
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Inteligência artificial, inimigo e AIPoints

Mensagem por MarcosSchultz em Ter Ago 30, 2016 11:33 pm

@alemaopessoa escreveu:
@AndyShow escreveu:Sim, vc Cria GameObjects Vazios ou Esferas,Cubos (Sem Colisao) etc... oque vc quiser e quantos quiser,Coloca no Lugar que vc quiser que o AI vá,e Linka no Script na Variável AIPoints

então mano, ja criei varios gameobjects vazios. o meu problema agora é saber como linkar. nao sei onde eu posso fazer isso no script.

Quando você joga o script no objeto, uma array é criada na aba Inspector. basta digitar o número de componentes da array e dar um enter... vários slots vão se abrir, para você linkar os objetos.
MarcosSchultz
MarcosSchultz
Administrador

Masculino PONTOS : 61777
REPUTAÇÃO : 2245
Idade : 22
Áreas de atuação : Administrador do fórum
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints Aad8pUi

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

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Inteligência artificial, inimigo e AIPoints

Mensagem por arnaldojunior em Seg Mar 13, 2017 1:34 am

Olá, sou novo aqui no fórum, mas adorei os tópicos e estou aprendendo muito com eles, mas estou encontrando dificuldade para fazer este script funcionar. O erro que esta apresentando é este:

NullReferenceException: Object reference not set to an instance of an object
AIPOINTS.Update () (at Assets/AIPOINTS.cs:40)

Se puderem me ajudar serei muito grato.

PS: É um jogo de labirinto onde o guardião deve perambular pelo labirinto e só perseguir o player quando o vir. Configurei o navmesh com os aipoints como statics e tudo que acontece é que o guardião apenas persegue o player, graças a meu outro script.

arnaldojunior
Membro
Membro

PONTOS : 1042
REPUTAÇÃO : 1
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Inteligência artificial, inimigo e AIPoints

Mensagem por AndyShow em Seg Mar 13, 2017 2:49 am

A Linha do Erro é essa:   if (hit.collider.gameObject.CompareTag ("Player")) { // SE A TAG DO OBJETO QUE O RAYCAST COLIDIU FOR "PLAYER"


Veja se seu player esta coma TAG "Player"
AndyShow
AndyShow
MembroAvançado

Masculino PONTOS : 2942
REPUTAÇÃO : 574
Idade : 36
Áreas de atuação : Blender e Unity
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints WvDYdlf

Ver perfil do usuário http://mundounity3d.forumbom.com/

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Inteligência artificial, inimigo e AIPoints

Mensagem por arnaldojunior em Seg Mar 13, 2017 11:35 am

Obrigado pela ajuda, agora descobri como funciona esse sistema de tag, mas estou com um novo problema: Meu guardião fica se movendo do primeiro aipoint para o segundo, o terceiro esta visível para ele, mas por algum motivo ele o ignora.
Não sei se ele não esta incrementando no "for" ou se ele não visualiza o aipoint(3).

arnaldojunior
Membro
Membro

PONTOS : 1042
REPUTAÇÃO : 1
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Inteligência artificial, inimigo e AIPoints

Mensagem por arnaldojunior em Seg Mar 13, 2017 11:46 am

Percebi que o guardião só se encaminha pro "gameobject" para o qual "esta virado", ou seja preciso de um comando que o direcione para o próximo "aipoint". Se puderem me ajudar com isto sei muito grato.

arnaldojunior
Membro
Membro

PONTOS : 1042
REPUTAÇÃO : 1
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Página 1 de 2 1, 2  Seguinte

Voltar ao Topo

- Tópicos similares

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