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 Very Happy
TÓPICOS RECENTES:
Tópico:
Postado em:
Postado por:
Sistema de Trafego de Carros e Pedestres!
Como retornar "false" se um objeto não existir?
[Alpha Android] - Night Hunter DevLog - Action RPG (23 de julho de 2017) Baixe!
Como faz a geração de terreno aleatório???
[TUTORIAL] Camera orbital com zoom (scroll)
Bugs na textura
Vagas para o Naufrágio, um jogo sobrevivência que estou desenvolvendo
Update desenvolvimento do meu jogo Epic Survival (Re Survival :D)
O que voces esperam em um jogo onde voce e um peixe???
[Equipe] Equipe para jogo tower defense low poly
COMO FAZER UM SISTEMA DE PARKOUR (SEM ANIMACAO) IDEIAS
Arrastar um botão ao manter o mouse pressionado
[DUVIDA]Como usar o setActive no photon
como reconhecer a ''face'' de uma mesh da agua
Diminuir a velocidade do veiculo Ativa um setActive
Como coloco video do youtube
Oque acham dessa Meia Historia para meu jogo de sobrevivencia!
PESSOAL PRA VOCÊS OQUE TEM QUE TER EM UM JOGO DE SOBREVIVENCIA?
Duvidas sobre a criação de jogos para celular
Grupo de desenvolvimento no Discord
Ajuda em Script de colisao na unity
Dúvida de Botões mobile, no c#???
[RESOLVIDO] jogo buga a textura (manchas azuis e vermelhas)
ROTACIONAR NO ÂNGULO DO GAMEOBJECT
dúvida sobre resolução para mobile
[RESOLVIDO] CAMERA NÃO VISUALIZA LENS FLARE
Ajuda com scripts de inimigo e player'' interação de zumbi e player''
como abrir o app de email a partir de um jogo unity ?
[DÚVIDA] [2D] ALTERAR SPRITE SEM PRECISAR IMPORTAR DE NOVO
Script para Câmera em primeira pessoa.
[TUTORIAL] Luz Principal,Luz de Freio,Piscas para Carro,Moto,Caminhão,Ônibus,Etc...
Bug Unity ?
Criar Cidade Para Game
(DUVIDA)PlayerPrefs
[TUTORIAL] Suspensão de carro com SLIDER
[TUTORIAL] Script de arma automatica
[_____CRONOGRAMA DO CANAL_____]
Pulo 2D
Procurar um Índice em uma lista
Alguem me recomenda uma versao estavel e atualizada da unity :C
[dúvida] Comando tranform.rotatante.x não funcionando direito.
[tutorial]Teleporte com tempo.
Laser 2D
Procuro equipe para criar jogo multiplayer online de sobrevivência.
[TUTORIAL] Unity 5 - Sistema Completo de PORTAS E CHAVES
Script não detecta certos comandos como "Input" e "GetKeyDown"
Duvida com Transform.position
Rotação apontando para um Objeto.
MS Vehicles Free em vídeo de melhores assets
Marcos Elias Proton Bus Simulator AJUDA COM SISTEMA DE MAPA CONTÍNUO
Desativar Terrain
Sistema de corrida
[____APOIE O FÓRUM E O CANAL E GANHE RECOMPENSAS____]
Como resolver
[TUTORIAL] Inteligência artificial, inimigo e AIPoints
Dúvidas Script
problemas com rb.velocity e gravidade
[TUTORIAL] Script de pulo para jogos 3D em geral (Unity - C#)
3D, Player gruda na parede
Como puxar várias animações ao mesmo tempo
[TUTORIAL] Camera orbital para android (TOUCH)
[DÚVIDA] SITE DE MODELOS 3D PARA USO GRATUITO
[TUTORIAL] C# .NET | Visual Studio - conexão com banco de dados MySQL
COMO FAZER UM SISTEMA DE VIAGEM IGUAL (No Man's Sky)
Gerador de mesh procedual
Nova atualização do meu rpg De açao Opinioes
[TUTORIAL] Sistema de escolha de personagens
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
[TUTORIAL] C# .NET | Launcher simples que acessa um site.
[TUTORIAL] - Como fazer download da OBB do jogo, in-game! (Android)
Variavel UI
Apk Google Play
[DICA] - Traduzir o assistente de downloads do "Google Play OBB Downloader"
Duvidas sobre programação em C#
Problema ao renderizar dois lado de uma malha (blender)
Novo jogo survival sendo feito por mim
[TUTORIAL] - 8 Dicas de otimização para mobile (Tópico 2) (Android)
[TUTORIAL] Como criar suas texturas Normal Map, Displacement Map e Bump Map (Photoshop)
[DIVULGAÇÃO]Avaliem Meu Jogo Na Play Store!
Estudo Game da Carro Mobile
[TUTORIAL] C# .NET| Instalar Cargas de trabalho/Componentes Individuais no Visual Studio
Instanciar objetos na mão do Player
[____EFICIÊNCIA DO FÓRUM____]
[TUTORIAL] Aprenda a programar em C# des do começo :D
[TUTORIAL] ENVIAR A OPINIÃO DO SEU JOGADOR, PARA UM SERVIDOR
[TUTORIAL] Objeto flutuar como se estivesse no espaço ou na água
[DESENVOLVEDORES MOBILE] - NOVA AREA DO FÓRUM DEDICADA AO MOBILE! (Android e iOS)
[DESENVOLVIMENTO C# .NET] - NOVA AREA DO FÓRUM DEDICADA AO C# .NET!
Versão Unity
Como fazer um FAQ?
[RESOLVIDO] PLAYER ANDAR MAIS DEVAGAR AO APERTAR SHIFT
[TUTORIAL] Movimento simples para objetos filiados ao FPSController da Unity por código.
[Resolvido] Como animar a camera do FPSController da unity ? sem dar bug...
Tiro sistema dano
Duvida em Disparo em jogo de Fps.
Divulgaçao de Battle of Worlds
[duvida] Easy Roads
[DÚVIDA] TOCAR ANIMAÇÕES EM SEU TEMPO CORRETO
[____ADMINISTRAÇÃO____] Alterações IMPORTANTES no fórum.
Hoje à(s) 1:08 am
Ontem à(s) 11:24 pm
Ontem à(s) 10:55 pm
Ontem à(s) 10:16 pm
Ontem à(s) 9:02 pm
Ontem à(s) 7:53 pm
Ontem à(s) 7:34 pm
Ontem à(s) 7:32 pm
Ontem à(s) 5:36 pm
Ontem à(s) 5:34 pm
Ontem à(s) 4:14 pm
Ontem à(s) 2:52 pm
Ontem à(s) 12:00 pm
Ontem à(s) 10:51 am
Ontem à(s) 10:42 am
Ontem à(s) 6:00 am
Ontem à(s) 5:35 am
Ontem à(s) 5:32 am
Ontem à(s) 5:30 am
Ontem à(s) 1:56 am
Sab Jul 22, 2017 11:48 pm
Sab Jul 22, 2017 11:30 pm
Sab Jul 22, 2017 9:42 pm
Sab Jul 22, 2017 8:31 pm
Sab Jul 22, 2017 7:30 pm
Sab Jul 22, 2017 7:19 pm
Sab Jul 22, 2017 4:05 pm
Sab Jul 22, 2017 3:04 pm
Sab Jul 22, 2017 2:35 pm
Sab Jul 22, 2017 12:54 pm
Sab Jul 22, 2017 11:10 am
Sab Jul 22, 2017 10:49 am
Sab Jul 22, 2017 9:53 am
Sab Jul 22, 2017 8:48 am
Sab Jul 22, 2017 6:19 am
Sab Jul 22, 2017 6:17 am
Sab Jul 22, 2017 3:51 am
Sab Jul 22, 2017 1:45 am
Sex Jul 21, 2017 11:57 pm
Sex Jul 21, 2017 11:33 pm
Sex Jul 21, 2017 10:37 pm
Sex Jul 21, 2017 10:33 pm
Sex Jul 21, 2017 10:24 pm
Sex Jul 21, 2017 9:29 pm
Sex Jul 21, 2017 9:27 pm
Sex Jul 21, 2017 9:25 pm
Sex Jul 21, 2017 9:17 pm
Sex Jul 21, 2017 9:15 pm
Sex Jul 21, 2017 9:08 pm
Sex Jul 21, 2017 9:07 pm
Sex Jul 21, 2017 9:00 pm
Sex Jul 21, 2017 8:57 pm
Sex Jul 21, 2017 8:52 pm
Sex Jul 21, 2017 8:49 pm
Sex Jul 21, 2017 8:47 pm
Sex Jul 21, 2017 8:38 pm
Sex Jul 21, 2017 8:29 pm
Sex Jul 21, 2017 8:24 pm
Sex Jul 21, 2017 8:23 pm
Sex Jul 21, 2017 8:03 pm
Sex Jul 21, 2017 7:19 pm
Sex Jul 21, 2017 7:05 pm
Sex Jul 21, 2017 5:42 pm
Sex Jul 21, 2017 3:56 pm
Sex Jul 21, 2017 10:25 am
Sex Jul 21, 2017 7:35 am
Qui Jul 20, 2017 11:48 pm
Qui Jul 20, 2017 11:48 pm
Qui Jul 20, 2017 7:32 pm
Qui Jul 20, 2017 7:26 pm
Qui Jul 20, 2017 6:36 pm
Qui Jul 20, 2017 4:45 pm
Qui Jul 20, 2017 4:43 pm
Qui Jul 20, 2017 4:36 pm
Qui Jul 20, 2017 4:26 pm
Qui Jul 20, 2017 2:50 pm
Qui Jul 20, 2017 10:03 am
Qui Jul 20, 2017 9:07 am
Qua Jul 19, 2017 11:42 pm
Qua Jul 19, 2017 10:31 pm
Qua Jul 19, 2017 10:12 pm
Qua Jul 19, 2017 9:40 pm
Qua Jul 19, 2017 7:26 pm
Qua Jul 19, 2017 6:28 pm
Qua Jul 19, 2017 6:14 pm
Qua Jul 19, 2017 5:48 pm
Qua Jul 19, 2017 2:26 pm
Qua Jul 19, 2017 2:21 pm
Qua Jul 19, 2017 11:49 am
Qua Jul 19, 2017 6:04 am
Ter Jul 18, 2017 9:31 pm
Ter Jul 18, 2017 9:03 pm
Ter Jul 18, 2017 8:56 pm
Ter Jul 18, 2017 8:37 pm
Ter Jul 18, 2017 8:25 pm
Ter Jul 18, 2017 6:13 pm
Ter Jul 18, 2017 5:17 pm
Ter Jul 18, 2017 4:55 pm
Ter Jul 18, 2017 1:16 pm
Duarte
Joaopm1
marcos4503
Madness
Gregory2017
Yagogomes
Onagro
joabr
IanLuan
IanLuan
rafaelllsd
ManoTrevor
fecirineu
thzin
thzin
vermelhinho
vermelhinho
vermelhinho
vermelhinho
dimmuo
Weverton Borges da Silva
hamerom
Extreme Craft
marcos4503
marcos4503
Diego Felix
Robinsandi
marcos4503
IanLuan
Gaimo
bitgames
sidney1234
Duarte
Zecandy
Gabriel César O
Gabriel César O
Joaopm1
roger224
Joaopm1
marcos4503
arthearthutr
arthearthutr
roger224
Gaimo
MarcosSchultz
xXGianlucksXx
MarcosSchultz
Annko
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
thzin
Gabriel César O
Gabriel César O
weslleyFx
ManoTrevor
Madness
dstaroski
PauloFR
MarcosSchultz
Mateus2583
ubroly
marcos4503
marcos4503
marcos4503
poyser
hetrodo_gamer
zMicael
Édipo
Madness
marcos4503
Gabriel César O
PauloFR
Dom3000
PauloFR
Callyde Jr
Callyde Jr
ManoTrevor
marcos4503
marcos4503
Weverton Borges da Silva
marcos4503
Gabriel César O
PauloFR
PauloFR
Bruno
Duarte
Dom3000
Gabriel César O
Gabriel César O
MarcosSchultz

[TUTORIAL] Inteligência artificial, inimigo e AIPoints

Página 1 de 2 1, 2  Seguinte

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

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

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



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

Masculino PONTOS : 9288
REPUTAÇÃO : 1559
Idade : 20
Á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] 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 : 950
REPUTAÇÃO : 1
Idade : 25
Respeito as regras :

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

Masculino PONTOS : 9288
REPUTAÇÃO : 1559
Idade : 20
Á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] 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 : 950
REPUTAÇÃO : 1
Idade : 25
Respeito as regras :

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 Very Happy

avatar
MarcosSchultz
Administrador

Masculino PONTOS : 9288
REPUTAÇÃO : 1559
Idade : 20
Á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] 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 : 950
REPUTAÇÃO : 1
Idade : 25
Respeito as regras :

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 : 866
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
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 9288
REPUTAÇÃO : 1559
Idade : 20
Á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] 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 : 821
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
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 9288
REPUTAÇÃO : 1559
Idade : 20
Á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] Inteligência artificial, inimigo e AIPoints

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


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 : 1085
REPUTAÇÃO : 7
Idade : 15
Respeito as regras :

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

Masculino PONTOS : 9288
REPUTAÇÃO : 1559
Idade : 20
Á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] 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 : 1085
REPUTAÇÃO : 7
Idade : 15
Respeito as regras :

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 : 1085
REPUTAÇÃO : 7
Idade : 15
Respeito as regras :

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

Masculino PONTOS : 9288
REPUTAÇÃO : 1559
Idade : 20
Á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] 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 : 793
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
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 9288
REPUTAÇÃO : 1559
Idade : 20
Á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] 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 : 1304
REPUTAÇÃO : 32
Idade : 23
Respeito as regras :

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

Masculino PONTOS : 9288
REPUTAÇÃO : 1559
Idade : 20
Á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] 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 : 1304
REPUTAÇÃO : 32
Idade : 23
Respeito as regras :

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 : 700
REPUTAÇÃO : 2
Respeito as regras :

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 ...
avatar
cosmoplay
MembroAvançado

Masculino PONTOS : 1091
REPUTAÇÃO : 38
Idade : 19
Respeito as regras :

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

Masculino PONTOS : 9288
REPUTAÇÃO : 1559
Idade : 20
Á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] Inteligência artificial, inimigo e AIPoints

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

no player
avatar
cosmoplay
MembroAvançado

Masculino PONTOS : 1091
REPUTAÇÃO : 38
Idade : 19
Respeito as regras :

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

Masculino PONTOS : 9288
REPUTAÇÃO : 1559
Idade : 20
Á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] 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 : 601
REPUTAÇÃO : 0
Respeito as regras :

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

Masculino PONTOS : 9288
REPUTAÇÃO : 1559
Idade : 20
Á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] 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?

avatar
iahGod
Programador

Masculino PONTOS : 927
REPUTAÇÃO : 77
Idade : 18
Áreas de atuação : -Programador na Murano Games;


Respeito as regras :

Ver perfil do usuário http://iahgodmodels.blogspot.com.br

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?


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

Masculino PONTOS : 9288
REPUTAÇÃO : 1559
Idade : 20
Á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] 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
avatar
iahGod
Programador

Masculino PONTOS : 927
REPUTAÇÃO : 77
Idade : 18
Áreas de atuação : -Programador na Murano Games;


Respeito as regras :

Ver perfil do usuário http://iahgodmodels.blogspot.com.br

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 : 703
REPUTAÇÃO : 0
Respeito as regras :

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

Masculino PONTOS : 9288
REPUTAÇÃO : 1559
Idade : 20
Á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] Inteligência artificial, inimigo e AIPoints

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

Muito obrigado cara.

Guisao666
Iniciante
Iniciante

PONTOS : 563
REPUTAÇÃO : 0
Áreas de atuação : Iniciante em programação da linguagem C#.
Iniciante em Level Designer.
Respeito as regras :

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.
avatar
dinho
Membro
Membro

Masculino PONTOS : 729
REPUTAÇÃO : 5
Áreas de atuação : Desenhista e Modelador 3D.
Modelagem em Blender.
Respeito as regras :

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);
avatar
artplayer
ProgramadorMaster

Masculino PONTOS : 986
REPUTAÇÃO : 211
Idade : 33
Respeito as regras :

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.
avatar
dinho
Membro
Membro

Masculino PONTOS : 729
REPUTAÇÃO : 5
Áreas de atuação : Desenhista e Modelador 3D.
Modelagem em Blender.
Respeito as regras :

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

Masculino PONTOS : 9288
REPUTAÇÃO : 1559
Idade : 20
Á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] 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 : 352
REPUTAÇÃO : 1
Respeito as regras :

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 ?

avatar
AndyShow
Instrutor

Masculino PONTOS : 2135
REPUTAÇÃO : 522
Idade : 34
Áreas de atuação : Blender e Unity
Respeito as regras :

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 : 352
REPUTAÇÃO : 1
Respeito as regras :

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 ?
avatar
AndyShow
Instrutor

Masculino PONTOS : 2135
REPUTAÇÃO : 522
Idade : 34
Áreas de atuação : Blender e Unity
Respeito as regras :

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 : 352
REPUTAÇÃO : 1
Respeito as regras :

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 : 352
REPUTAÇÃO : 1
Respeito as regras :

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
avatar
AndyShow
Instrutor

Masculino PONTOS : 2135
REPUTAÇÃO : 522
Idade : 34
Áreas de atuação : Blender e Unity
Respeito as regras :

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 : 352
REPUTAÇÃO : 1
Respeito as regras :

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

Masculino PONTOS : 9288
REPUTAÇÃO : 1559
Idade : 20
Á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] 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
Iniciante
Iniciante

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

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"
avatar
AndyShow
Instrutor

Masculino PONTOS : 2135
REPUTAÇÃO : 522
Idade : 34
Áreas de atuação : Blender e Unity
Respeito as regras :

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

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

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

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

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Página 1 de 2 1, 2  Seguinte

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

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