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:
ShapeKeys do Blender para a Unity altera áreas próximas
COMO EVITAR QUE UM OBJETO (PLAYER,ITEM ETC...) ATRAVESSE UMA PAREDE.
Ajuda em Script de Verificação de Ação e Reação
unity Failed to load PlayerSettings (internal index #0). Most likely data f
modelar avatar e skins para um jogo web
PRECISO FAZER QUE MEU GAME FIQUE ONLINE
Materiais do Blander não aparecem no MeshRendere do Objeto na Unity
Repetiçoes de Textura no Terreno
SERVER IS DOWN - UNITY+MSQL
Procuro programadores - Novo jogo
Problema com o MS VEHICLES
Preciso de ajuda com a Unity
Problema com vídeo em 360° na Unity
Problemas no MS Vehicles
unity- eventos na Animação com Armature/Bones vinda do blender não funciona
ajuda exibir resultados simulados em uma liga Game Unity
Unity - ParticleSystem não é redirecionado no rawimage no canvas
Como resolver o problema de "face orientation" no Blender.
[DÚVIDA] Tive um problema com meu Canvas
erro na Directional Light
Problemas com o Directional Light da Unity 3D
210 Linhas de código para inimigo é muito grande?
Novo jogo da franquia Sphere game em desenvolvimento
malha da roda não girando com wheel collider unity
Problemas com ambiguidade
Touch mobile
INVALID TOKEN
Como acessar o "HD Render Pipeline" do HDRP por script?
CHAT GPT PRA JOGO DE TIRO? comentem
Tutorial script inimigo segue e foge do player
Ainda vale a pena lançar Asset na Asset Store?
Ajuda com tabela de historico de pontuaçao.
[TUTORIAL] Entrar no carro estilo GTA
Como derrapar um Whell Collider
Como altertar o valor do "Asymptote Value" do Whell Collider via Script
Preciso de ajuda para substituir valor de variavel em outro script
Ajuda com Top Down Shooter utilizando Photon
Duvida com Netcode
[RESOLVIDO] Unity - Movendo a Câmera na Horizontal/Vertical com Touch
Alguém me ajuda com os anúncios pfv
Segundo Trailer do jogo Dark Age, Feliz Natal a todos!
Unity - ScrollRect, Viewport, Content - O Conteúdo ñ inicia no topo
Coleta de itens
Unity - Cadastro do email do jogador
[GRATIS] PACK DE MODELOS 3D PARA JOGO DE TERROR
Onde Conseguir músicas para meu Jogo?
error CS0246 em Script
Alguem teve ja esse problema?
[Projeto em Andamento] Draug, um jogo de hordas
DISPONIVEL PARA FAZER MODELOS 3D
Unity-Loja.Como os Jogadores terão acesso aos ítens comprados na PlayStore?
Bugando depois do Build.
Primeiro Trailer do jogo Dark Age
Problema com sombra
Mesh e Material do objeto trocando para uma instancia no inicio do jogo
[RESOLVIDO] Unity - RawImages_Layer_Camera
INVESTIMENTO EM JOGOS E BANCO DE TALENTO
Teaser do meu novo projeto pessoal, Dark Age
Preciso de ajuda com mudança para mobile androide.
[RESOLVIDO] Posição final do objeto em jogo 2D
Input.GetAxis() obedercer a orientação de um objeto.
Interação com elementos UI
Meu primeiro jogo na steam
Minimap/Radar/GPS Estilo GTA V
[RESOLVIDO] Erro no console depois que formatei o pc
PACK GRÁTIS de Músicas ELETRÔNICAS para ajudar vocês em seus Jogos Indies!
[TUTORIAL] Entenda como funciona: ENUM, SWITCH, BREAK, CASE no C#
O Labirinto II - Baixe o Jogo
Qual e o codigo de Botões na unity para saber seus estados?
Como carregar itens pequenos dentro do carro sem que atravesse os colliders
[Duvida] Script pegar itens
Travamento ao trocar de cena
Colisão zoada e movimentação
Salvar objetos que foram destruidos entre cenas na unity
Quero começa a desenvolver um jogo de luta porem eu queria aprender a faze
Pegar qual objeto colidiu com o Linecast.
movimentação e camera?
[RESOLVIDO] Unity - SceneManager.LoadScene abre scene com objeto "vazio"
[RESOLVIDO] ajuda sobre skybox
MEU SIMULADOR DE CARRO
[_____IMPORTANTE_____] ALTERAÇÕES NA POLÍTICA DE COBRANÇA DA UNITY
[RESOLVIDO] Ausencia da funçao NavMesh na Unity 2022.2.12
[_____IMPORTANTE_____] ALTERAÇÕES NA POLÍTICA DE COBRANÇA DA UNITY - 2
Roll Up Um jogo de aventura e desáfios
Terminologia da Unity em outras engines
Como criar a iluminação do Sol no Sistema Solar?
Conexão de lobby pelo OnConnectedToMaster
Problema na exportção de projeto unity
[RESOLVIDO] Unity - Áudios estão emitindo som só Depois do Botão ser solto
Unity - Banco de Dados Online junto ao Jogo
Player virar para o inimigo(Prefab)
[TUTORIAL] Sistema De Save Game Ao Sair Da Fase
Problema de Sincronização de um objeto de um jogo multiplayer usa q Photon
Unity - Compartilhar meu Jogo
Alguém que manja do Google ADmob?
Unity - Avaliar meu Jogo
[RESOLVIDO] Destruir inimigo com o player.
Salvar e carregar dados na Unity de objetos prefabs sem sobrescrever os dad
Unity - Salvar os Dados do Jogador Online
Ontem à(s) 10:09 pm
Dom Mar 10, 2024 2:30 pm
Sex Mar 01, 2024 1:27 pm
Qui Fev 22, 2024 9:57 pm
Qua Fev 21, 2024 10:39 am
Ter Fev 20, 2024 9:28 am
Ter Fev 20, 2024 12:15 am
Seg Fev 19, 2024 1:06 pm
Seg Fev 12, 2024 1:56 pm
Seg Fev 12, 2024 1:17 pm
Dom Fev 11, 2024 8:55 pm
Dom Fev 11, 2024 11:16 am
Seg Fev 05, 2024 4:18 pm
Dom Fev 04, 2024 9:39 pm
Qua Jan 31, 2024 11:59 pm
Ter Jan 30, 2024 7:37 pm
Ter Jan 23, 2024 6:33 pm
Dom Jan 21, 2024 6:03 pm
Sáb Jan 20, 2024 7:03 pm
Sáb Jan 20, 2024 6:58 pm
Sáb Jan 20, 2024 6:39 pm
Sex Jan 19, 2024 1:29 pm
Sex Jan 19, 2024 8:40 am
Dom Jan 14, 2024 5:30 pm
Qua Jan 10, 2024 10:29 pm
Qua Jan 10, 2024 8:55 pm
Qua Jan 10, 2024 7:14 pm
Ter Jan 09, 2024 3:55 pm
Ter Jan 09, 2024 8:04 am
Sáb Jan 06, 2024 8:02 pm
Sex Jan 05, 2024 7:01 am
Sex Jan 05, 2024 12:12 am
Qui Jan 04, 2024 6:55 pm
Qui Jan 04, 2024 12:52 pm
Qui Jan 04, 2024 4:34 am
Ter Jan 02, 2024 11:48 pm
Dom Dez 31, 2023 7:25 pm
Qua Dez 27, 2023 5:44 pm
Qua Dez 27, 2023 3:08 pm
Sáb Dez 23, 2023 7:27 pm
Sáb Dez 23, 2023 5:06 pm
Qui Dez 21, 2023 8:10 pm
Seg Dez 18, 2023 2:04 pm
Sex Dez 15, 2023 5:11 pm
Qui Dez 14, 2023 9:13 pm
Qui Dez 14, 2023 2:47 pm
Qui Dez 14, 2023 1:48 pm
Qua Dez 13, 2023 8:58 pm
Ter Dez 12, 2023 2:32 pm
Seg Dez 11, 2023 1:53 pm
Qua Dez 06, 2023 8:13 pm
Sáb Dez 02, 2023 8:06 pm
Qui Nov 30, 2023 7:49 am
Seg Nov 27, 2023 1:35 am
Qua Nov 22, 2023 7:37 am
Qui Nov 09, 2023 1:22 pm
Seg Nov 06, 2023 11:59 am
Ter Out 31, 2023 9:53 am
Dom Out 29, 2023 8:05 pm
Dom Out 29, 2023 3:03 am
Sex Out 27, 2023 3:43 pm
Sex Out 27, 2023 3:28 pm
Qua Out 25, 2023 1:20 pm
Seg Out 23, 2023 10:34 am
Dom Out 22, 2023 6:55 pm
Qui Out 19, 2023 11:57 pm
Qui Out 19, 2023 6:39 pm
Ter Out 17, 2023 6:37 pm
Ter Out 17, 2023 6:18 pm
Seg Out 16, 2023 1:59 pm
Sáb Out 14, 2023 12:15 pm
Qua Out 11, 2023 6:07 pm
Seg Out 09, 2023 4:19 pm
Qua Out 04, 2023 12:12 pm
Qua Out 04, 2023 12:11 pm
Ter Out 03, 2023 9:18 pm
Ter Out 03, 2023 9:08 pm
Ter Out 03, 2023 6:05 pm
Ter Set 26, 2023 12:45 pm
Seg Set 25, 2023 9:02 pm
Seg Set 25, 2023 9:47 am
Sáb Set 23, 2023 2:10 pm
Sex Set 22, 2023 9:01 pm
Qui Set 21, 2023 11:04 am
Qua Set 20, 2023 4:40 pm
Qua Set 20, 2023 9:15 am
Dom Set 17, 2023 12:17 pm
Sex Set 15, 2023 7:24 pm
Sex Set 15, 2023 5:41 pm
Sex Set 15, 2023 4:28 pm
Sex Set 15, 2023 10:56 am
Sex Set 15, 2023 10:15 am
Seg Set 11, 2023 11:43 am
Seg Set 11, 2023 11:31 am
Sáb Set 09, 2023 4:53 pm
Sáb Set 09, 2023 1:44 pm
Ter Set 05, 2023 11:12 pm
Ter Set 05, 2023 3:12 pm
Seg Set 04, 2023 11:53 pm



































































































[TUTORIAL] Inteligência artificial, inimigo e AIPoints

+31
SauloeArthur
francisco barroso
ninjagamergabriel
FuncaoFF
DGDark
NKKF
BrazaTattoo
ixgames
Callyde Jr
Unidade3d5
bsoll4
Diego Felix
GetulioGamerbr
arnaldojunior
AndyShow
alemaopessoa
artplayer
dinho
Guisao666
JohnnyKills
iahGod
gagasilva
cosmoplay
Orixinals
Chilinger
Jhonny_Ayllet
Lucas Garcia Frade
Rafael Pirani
Alan Porfirio
Dionilson
MarcosSchultz
35 participantes

Página 2 de 2 Anterior  1, 2

Ir para baixo

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

Mensagem por arnaldojunior Ter Mar 14, 2017 11:22 am

Olhei todo o código e comecei a entender o problema, movi os aipoints de posição e o problema mudou para algo mais concreto.

ArgumentOutOfRangeException: Argument is out of range.
Parameter name: index
System.Collections.Generic.List`1[UnityEngine.Transform].get_Item (Int32 index) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Collections.Generic/List.cs:633)
AIPOINTS.Update () (at Assets/AIPOINTS.cs:82)

Como disse sou novo no Unity, mas acredito que estou estourando meu contador.
O que devo fazer para que isso não ocorra, até porque meu guardião só vai até o primeiro ponto.

arnaldojunior
Membro
Membro

PONTOS : 2804
REPUTAÇÃO : 2
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints - Página 2 WvDYdlf

Ir para o topo Ir para baixo

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

Mensagem por GetulioGamerbr Ter Mar 14, 2017 1:58 pm

MarcosSchultz escreveu:[TUTORIAL] Inteligência artificial, inimigo e AIPoints - Página 2 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
OBRIGADO Marcos,muito obrigado msmo por esses scripts,meu projeto so está sendo concluido pelo seu trabalho
GetulioGamerbr
GetulioGamerbr
Iniciante
Iniciante

PONTOS : 2701
REPUTAÇÃO : 1
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints - Página 2 WvDYdlf

Ir para o topo Ir para baixo

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

Mensagem por arnaldojunior Dom Mar 19, 2017 11:00 am

Olá, tentei usar o script do Marcos para que meu guardião vaga-se pelo labirinto, mas não deu certo. Resolvi criar vergonha na cara e criar meu próprio script, mas dessa vez para que ele perambula-se aleatoriamente, mas meu problema agora é que quando ele marca um ponto da "navmesh sphere" inacessível, ele para ao travar em uma parede. Tentei usar raycast para ele detectar objetos e refazer o calculo, mas quando ele esbarra em angulo fechado (e isto ocorre muito) o raycast não funciona. Se eu tirar meu teste de só fazer o calculo de localização do "se não" ele para de esbarrar, mas como esta no update, acredito que vã consumir muita memória.
Minha duvida portanto é:
Como testar se a algum obstaculo em um angulo de 180° ou um raycast em angulo, o que me ajudaria a melhorar o sistema de detecção do guardião, pois ele só persegue o player se este passar bem diante de seus olhos.
Agradeço pela atenção.
Código:

using UnityEngine;
using UnityEngine.AI;
using System.Collections;
using System.Collections.Generic;
[RequireComponent(typeof(CharacterController))]


public class Inimigo : MonoBehaviour
{

    public Transform Player;
    public UnityEngine.AI.NavMeshAgent naveMesh;
    private NavMeshAgent navemesh;
    public Vector3 insideUnitSphere;

    // Use this for initialization
    void Start ()
    {

        navemesh = transform.GetComponent<UnityEngine.AI.NavMeshAgent>();
    }
   
   // Update is called once per frame
   void Update ()
    {
        RaycastHit hit;
        if (Physics.Raycast(transform.position,transform.forward,out hit,30))
            {
            if (hit.collider.gameObject.CompareTag("Player"))
                {
                naveMesh.destination = Player.position;
                }
         
           }
        else if (naveMesh.destination == transform.position)
        {
            naveMesh.destination = Random.insideUnitSphere * 50;
            Debug.Log(naveMesh.destination);

        }

    }
  }

arnaldojunior
Membro
Membro

PONTOS : 2804
REPUTAÇÃO : 2
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints - Página 2 WvDYdlf

Ir para o topo Ir para baixo

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

Mensagem por MarcosSchultz Ter Mar 21, 2017 12:05 am

Poderia criar um tópico específico para esta dúvida?
MarcosSchultz
MarcosSchultz
Administrador

Masculino PONTOS : 64727
REPUTAÇÃO : 2650
Idade : 27
Áreas de atuação : Administrador do fórum
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints - Página 2 Aad8pUi

https://www.schultzgames.com

Ir para o topo Ir para baixo

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

Mensagem por Diego Felix Seg Jul 17, 2017 10:37 pm

Muito bom marcos esse tópico tah me ajudando bastante, mas queria saber como faço pra por as animações do inimigo ficar parado,caminhar,atacar, morrer e etc quem puder me ajudar ja agradeço Smile
Diego Felix
Diego Felix
Avançado
Avançado

Masculino PONTOS : 2992
REPUTAÇÃO : 84
Idade : 33
Áreas de atuação : Modelagem 3D, Roteirista.
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints - Página 2 WvDYdlf

https://www.blogger.com/blogger.g?blogID=2315682099830977662#ove

Ir para o topo Ir para baixo

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

Mensagem por MarcosSchultz Sex Jul 21, 2017 8:47 pm

MarcosSchultz
MarcosSchultz
Administrador

Masculino PONTOS : 64727
REPUTAÇÃO : 2650
Idade : 27
Áreas de atuação : Administrador do fórum
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints - Página 2 Aad8pUi

https://www.schultzgames.com

Ir para o topo Ir para baixo

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

Mensagem por bsoll4 Ter Nov 14, 2017 2:37 pm

estou tendo um problema:
quando o inimigo chega no AIpoint ele simplesmente gira no eixo y e entra no chao, aí fica travado la;

bsoll4
Iniciante
Iniciante

PONTOS : 2327
REPUTAÇÃO : 0
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints - Página 2 WvDYdlf

Ir para o topo Ir para baixo

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

Mensagem por Unidade3d5 Ter Nov 14, 2017 4:37 pm


Unidade3d5
Avançado
Avançado

Masculino PONTOS : 2782
REPUTAÇÃO : 28
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints - Página 2 WvDYdlf

Ir para o topo Ir para baixo

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

Mensagem por Callyde Jr Ter Nov 14, 2017 6:41 pm

Observe se os AIpoint estaodentrodo chao?
Coloque um BoxeCollider para ver melhor.
Callyde Jr
Callyde Jr
Programador

Masculino PONTOS : 4919
REPUTAÇÃO : 444
Idade : 45
Áreas de atuação : Iniciante em modelagem Blender,Sketchup
Programador
Idealista

Meu Canal
https://www.youtube.com/ch
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints - Página 2 WvDYdlf

http://unnygames.000webhostapp.com/

Ir para o topo Ir para baixo

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

Mensagem por ixgames Sex Jan 26, 2018 2:09 pm

blz. eu sei que este post ja é um pouco antigo. mas eu testei aqui e descobri que tem alguns bugs. 

os scripts fucnionam sim, so que se tiver algum objecto entre o inimigo e AIpoint. o inimigo para e da erro. ou seja. se tiver uma parede ou um objecto que tape a visao do inimigo dos pontos. da erro.. 

ArgumentOutOfRangeException: Argument is out of range.
Parameter name: index

linha 82: 
Vector3 target = ListaDeAiPoints[AIpoitAtual].transform.position;//A VARIAVEL target RECEBE A POSIÇAO DO AIpointAtual

... 

eu acho que este script foi criando em um terreno aberto sem paredes nem nada do tipo. 

outro problema achado neste script. tem haver com o uso do navmesh.. a partir do momento que eu adiciono um nav mesh ao terreno e faco bake.. o inimigo quando esta a patrulhar entre os pontos. na chegada de cada ponto ele simplsmente se deita no terreno. por veses levanta se e vai ate outro ponto. outras veses so fica deitado no mesmo sitio..

nao entendo porque que o modelo 3D rotaciona.. !!

alem disso tem outro problema, os AIpoints nao podem estar a uma altura grande nem muito baixa.. se tiver uma altura grande. o player sobe em direcao ao gameobject..!!

apesar deste script ser muito bom.. gostava que voce podesse refurmalar este script para usar com navemesh... e corrigindo estes bugs. seria otimo usar num projecto!!!

ixgames
Iniciante
Iniciante

PONTOS : 2246
REPUTAÇÃO : 0
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints - Página 2 WvDYdlf

Ir para o topo Ir para baixo

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

Mensagem por BrazaTattoo Ter Jun 19, 2018 9:01 pm

Boa noite, gostaria que o inimigo aguardasse um tempo no ai point, o script que estou utilizando nao tem a opçao. se puderem me ajudar eu agradeço muito!  Segue o Script

Código:
using UnityEngine.AI;
using System.Collections;
using UnityEngine;


public class INTELIGENCIA2 : MonoBehaviour {
 public Transform Player;
 private NavMeshAgent naveMesh;
 public float DistanciaDoPlayer, DistanciaDoAIPoint;
 public float DistanciaDePercepcao = 30,DistanciaDeSeguir = 20, DistanciaDeAtacar = 2, VelocidadeDePasseio = 3, VelocidadeDePerseguicao = 6,TempoPorAtaque = 1.5f, DanoDoInimigo = 40;
 private bool VendoOPlayer;
 public Transform[] DestinosAleatorios;
 private int AIPointAtual;
 private bool PerseguindoAlgo, contadorPerseguindoAlgo,atacandoAlgo,contadorOlhar ;
 private float cronometroDaPerseguicao,cronometroAtaque, cronometroOlhar;
 public bool BPassear, BOlhar, BPerseguir, BAtacar;
private Animator zumbi;


 void Start (){
 AIPointAtual = Random.Range (0, DestinosAleatorios.Length);
 naveMesh = transform.GetComponent<NavMeshAgent> ();
  zumbi = GetComponent<Animator> ();
 }
 void Update (){
 DistanciaDoPlayer = Vector3.Distance(Player.transform.position,transform.position);
 DistanciaDoAIPoint =  Vector3.Distance(DestinosAleatorios[AIPointAtual].transform.position,transform.position);
 //============================== RAYCAST ===================================//
 RaycastHit hit;
 Vector3 deOnde = transform.position;
 Vector3 paraOnde = Player.transform.position;
 Vector3 direction = paraOnde - deOnde;
 if(Physics.Raycast (transform.position,direction,out hit,1000) && DistanciaDoPlayer < DistanciaDePercepcao ){
 if(hit.collider.gameObject.CompareTag("Player")){
 VendoOPlayer = true;
 }else{
 VendoOPlayer = false;
 }
 }
 //================ CHECHAGENS E DECISOES DO INIMIGO ================//
 if(DistanciaDoPlayer > DistanciaDePercepcao && cronometroOlhar < 5){
 PerseguindoAlgo = false;
 BPassear = true;
 Passear();
 }
 if (DistanciaDoPlayer <= DistanciaDePercepcao && DistanciaDoPlayer > DistanciaDeSeguir && cronometroOlhar < 5) {
 if(VendoOPlayer == true){
 BOlhar = true;
 Olhar ();
 }else{
 BPassear = true;

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

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

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

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

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

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

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

 cronometroAtaque += Time.deltaTime;
 }
 if (cronometroAtaque >= TempoPorAtaque && DistanciaDoPlayer <= DistanciaDeAtacar) {
 atacandoAlgo = true;
 cronometroAtaque = 0;



 //PLAYER.VIDA = PLAYER.VIDA - DanoDoInimigo;
 Debug.Log ("recebeuAtaque");
 } else if (cronometroAtaque >= TempoPorAtaque && DistanciaDoPlayer > DistanciaDeAtacar) {
 atacandoAlgo = false;
 cronometroAtaque = 0;
 Debug.Log ("errou");
 }
 }
 void Passear (){
 
 BOlhar = false;
 BPerseguir = false;
 BAtacar = false;
zumbi.SetInteger("condicao", 0);

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

 BPassear = false;
zumbi.SetInteger("condicao", 1);
 BPerseguir = false;
 BAtacar = false;

 naveMesh.speed = 0;
 transform.LookAt (Player);
 }
 void Perseguir(){
 BPassear = false;
 BOlhar = false;
zumbi.SetInteger("condicao", 2);
 BAtacar = false;

 naveMesh.acceleration = 8;
 naveMesh.speed = VelocidadeDePerseguicao;
 naveMesh.destination = Player.position;
 }
 void Atacar (){
 BPassear = false;
 BOlhar = false;
 BPerseguir = false;
 zumbi.SetInteger("condicao", 3);


 atacandoAlgo = true;
 }
}
BrazaTattoo
BrazaTattoo
Membro
Membro

PONTOS : 3012
REPUTAÇÃO : 24
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints - Página 2 WvDYdlf

Ir para o topo Ir para baixo

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

Mensagem por NKKF Ter Jun 19, 2018 9:45 pm

Na void "Passear" mude-a para IEnumerator e coloque um:

Código:
//Pode mudar esse "3f"
yield return new WaitForSeconds(3f);

Antes de dizer que ele irá mudar seu destino
NKKF
NKKF
ProgramadorMaster

Masculino PONTOS : 4570
REPUTAÇÃO : 574
Idade : 19
Áreas de atuação : Desenvolvedor na Unity, NodeJS, React, ReactJS, React Native, MongoDB e Firebase.
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints - Página 2 Aad8pUi

Ir para o topo Ir para baixo

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

Mensagem por BrazaTattoo Qua Jun 20, 2018 12:29 am

Obrigado pela dica, sou novato ainda em programaçao, vou tentar aprender sobre IEnumerator pois nunca usei nem sei como usar. eu mantenho a void Passear ?
BrazaTattoo
BrazaTattoo
Membro
Membro

PONTOS : 3012
REPUTAÇÃO : 24
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints - Página 2 WvDYdlf

Ir para o topo Ir para baixo

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

Mensagem por NKKF Qua Jun 20, 2018 6:36 am

Sim, pode manter, só mudar ela para IEnumerator e adicionar para ela esperar.
NKKF
NKKF
ProgramadorMaster

Masculino PONTOS : 4570
REPUTAÇÃO : 574
Idade : 19
Áreas de atuação : Desenvolvedor na Unity, NodeJS, React, ReactJS, React Native, MongoDB e Firebase.
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints - Página 2 Aad8pUi

Ir para o topo Ir para baixo

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

Mensagem por DGDark Seg Jul 23, 2018 7:36 pm

Marcos eu coloquei esse script, porem ele só segue quando olha pra ele e quando ele chega no AIPoint ele meio que cai e fica como se tivesse escurregado

DGDark
Iniciante
Iniciante

Masculino PONTOS : 2786
REPUTAÇÃO : 3
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints - Página 2 WvDYdlf

Ir para o topo Ir para baixo

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

Mensagem por Unidade3d5 Ter Jul 24, 2018 2:41 am

DGDark escreveu:Marcos eu coloquei esse script, porem ele só segue quando olha pra ele e quando ele chega no AIPoint ele meio que cai e fica como se tivesse escurregado
Ola DGDark  voce esta precisando de uma AI para seu jogo?

Unidade3d5
Avançado
Avançado

Masculino PONTOS : 2782
REPUTAÇÃO : 28
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints - Página 2 WvDYdlf

Ir para o topo Ir para baixo

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

Mensagem por DGDark Ter Jul 24, 2018 2:43 am

Unidade3d5 escreveu:
DGDark escreveu:Marcos eu coloquei esse script, porem ele só segue quando olha pra ele e quando ele chega no AIPoint ele meio que cai e fica como se tivesse escurregado
Ola DGDark  voce esta precisando de uma AI para seu jogo?
Sim, estou fazendo um game de terror, e esta tentando fazer uma AI e peguei a do forúm porem aconteceu isso

DGDark
Iniciante
Iniciante

Masculino PONTOS : 2786
REPUTAÇÃO : 3
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints - Página 2 WvDYdlf

Ir para o topo Ir para baixo

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

Mensagem por DGDark Ter Jul 24, 2018 2:44 am

Se poder me ajudar agradeço desde já.

DGDark
Iniciante
Iniciante

Masculino PONTOS : 2786
REPUTAÇÃO : 3
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints - Página 2 WvDYdlf

Ir para o topo Ir para baixo

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

Mensagem por Unidade3d5 Ter Jul 24, 2018 3:13 am

DGDark escreveu:Se poder me ajudar agradeço desde já.
me chama no facebook 

https://www.facebook.com/profile.php?id=100010490649346&ref=bookmarks

Unidade3d5
Avançado
Avançado

Masculino PONTOS : 2782
REPUTAÇÃO : 28
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints - Página 2 WvDYdlf

Ir para o topo Ir para baixo

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

Mensagem por FuncaoFF Seg Set 10, 2018 11:10 pm

Muito bom parabéns! O meu funcionou bem. Só o Sprite que desaparece quando chega no segundo ponto. Ficou muito bom.

FuncaoFF
Iniciante
Iniciante

PONTOS : 2018
REPUTAÇÃO : 0
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints - Página 2 WvDYdlf

Ir para o topo Ir para baixo

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

Mensagem por ninjagamergabriel Seg Nov 26, 2018 2:56 pm

Dionilson escreveu:Mano Brigado cara, me ajudo pakas mano vlws mesmo.
Surprised

ninjagamergabriel
Iniciante
Iniciante

PONTOS : 1944
REPUTAÇÃO : 0
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints - Página 2 WvDYdlf

Ir para o topo Ir para baixo

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

Mensagem por francisco barroso Sáb Dez 22, 2018 9:46 am

NKKF escreveu:Na void "Passear" mude-a para IEnumerator e coloque um:

Código:
//Pode mudar esse "3f"
yield return new WaitForSeconds(3f);

Antes de dizer que ele irá mudar seu destino

Cara uma void pode ser substituida por o yield return new?

francisco barroso
Programador

Masculino PONTOS : 2365
REPUTAÇÃO : 59
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints - Página 2 WvDYdlf

Ir para o topo Ir para baixo

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

Mensagem por MarcosSchultz Sex Dez 28, 2018 3:29 pm

francisco barroso escreveu:
NKKF escreveu:Na void "Passear" mude-a para IEnumerator e coloque um:

Código:
//Pode mudar esse "3f"
yield return new WaitForSeconds(3f);

Antes de dizer que ele irá mudar seu destino

Cara uma void pode ser substituida por o yield return new?

Depende da situação...
MarcosSchultz
MarcosSchultz
Administrador

Masculino PONTOS : 64727
REPUTAÇÃO : 2650
Idade : 27
Áreas de atuação : Administrador do fórum
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints - Página 2 Aad8pUi

https://www.schultzgames.com

Ir para o topo Ir para baixo

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

Mensagem por BrazaTattoo Seg Abr 22, 2019 9:43 pm

Boa noite a todos! estou iniciando agora em programação, já consigo fazer algumas coisas com script, mais A.I ainda é muito avançado para min, o script está perfeito, já adicionei animações a cada ação do inimigo...

preciso de uma ajuda, meu cenário tem várias salas com portas, gostaria de saber se tem alguma forma mais simples de fazer o inimigo abrir e fechar a porta, pois o meu apenas está atravessando.

agradeço muito!
BrazaTattoo
BrazaTattoo
Membro
Membro

PONTOS : 3012
REPUTAÇÃO : 24
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints - Página 2 WvDYdlf

Ir para o topo Ir para baixo

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

Mensagem por MarcosSchultz Ter Abr 23, 2019 2:42 am

BrazaTattoo escreveu:Boa noite a todos! estou iniciando agora em programação, já consigo fazer algumas coisas com script, mais A.I ainda é muito avançado para min, o script está perfeito, já adicionei animações a cada ação do inimigo...

preciso de uma ajuda, meu cenário tem várias salas com portas, gostaria de saber se tem alguma forma mais simples de fazer o inimigo abrir e fechar a porta, pois o meu apenas está atravessando.

agradeço muito!

Poderia criar um tópico específico para essa sua dúvida?

A princípio, da pra elaborar algo simples, com um Vector3.Distance para detectar se o inimigo está perto da porta, e caso ele esteja, ele faz a ação de abrir a porta (caso ela esteja fechada)
MarcosSchultz
MarcosSchultz
Administrador

Masculino PONTOS : 64727
REPUTAÇÃO : 2650
Idade : 27
Áreas de atuação : Administrador do fórum
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints - Página 2 Aad8pUi

https://www.schultzgames.com

Ir para o topo Ir para baixo

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

Mensagem por Portela Seg Jan 04, 2021 10:35 am

estou com mesmo erro de index =(

ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index

tem um porque disso ?
Portela
Portela
Membro
Membro

Masculino PONTOS : 1487
REPUTAÇÃO : 5
Áreas de atuação : Noob/gambirreiro
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints - Página 2 WvDYdlf

Ir para o topo Ir para baixo

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

Mensagem por SauloeArthur Seg Jan 04, 2021 10:46 am

talvez possa ser porque você está tentando acessar alguma coisa usando um índice maior do que a coleção
SauloeArthur
SauloeArthur
ProgramadorMaster

Masculino PONTOS : 2345
REPUTAÇÃO : 85
Idade : 17
Áreas de atuação : C#, Unity, Html, Css, Javascript, Php, Sql;
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints - Página 2 Aad8pUi

https://www.saulomgames.com/

Ir para o topo Ir para baixo

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

Mensagem por Portela Seg Jan 04, 2021 10:49 am

SauloeArthur escreveu:talvez possa ser porque você está tentando acessar alguma coisa usando um índice maior do que a coleção


podia me falar um pouco do "índice" e da "coleção" paraeu puder tentar ajeitar isso ! ty =)
Portela
Portela
Membro
Membro

Masculino PONTOS : 1487
REPUTAÇÃO : 5
Áreas de atuação : Noob/gambirreiro
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints - Página 2 WvDYdlf

Ir para o topo Ir para baixo

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

Mensagem por Portela Ter Jan 05, 2021 12:22 am

SauloeArthur escreveu:talvez possa ser porque você está tentando acessar alguma coisa usando um índice maior do que a coleção
usei navmesh.. acho que foi alguma coisa com meu terreno.
Portela
Portela
Membro
Membro

Masculino PONTOS : 1487
REPUTAÇÃO : 5
Áreas de atuação : Noob/gambirreiro
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints - Página 2 WvDYdlf

Ir para o topo Ir para baixo

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

Mensagem por Crash Psycho Qui Jan 07, 2021 7:45 pm

Será que tem como fazer a Ai andar pelo cenário sem precisar de Ai Points?
Crash Psycho
Crash Psycho
Modelador

Masculino PONTOS : 3510
REPUTAÇÃO : 170
Idade : 24
Áreas de atuação : unity 3D...
Game Design .
Modelador 3d, uso o blender.
se aperfeiçoando na unity 3D.

Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints - Página 2 WvDYdlf

https://www.instagram.com/crash_psycho/

Ir para o topo Ir para baixo

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

Mensagem por Portela Qui Jan 07, 2021 7:55 pm

glauco escreveu:Será que tem como fazer a Ai andar pelo cenário sem precisar de Ai Points?
 Sei não, mas acho que da pra fazer as AI aleatorias e se autodestruindo e instanciando de novo kkk
Portela
Portela
Membro
Membro

Masculino PONTOS : 1487
REPUTAÇÃO : 5
Áreas de atuação : Noob/gambirreiro
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints - Página 2 WvDYdlf

Ir para o topo Ir para baixo

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

Mensagem por Crash Psycho Qui Jan 07, 2021 8:07 pm

Portela escreveu:
glauco escreveu:Será que tem como fazer a Ai andar pelo cenário sem precisar de Ai Points?
 Sei não, mas acho que da pra fazer as AI aleatorias e se autodestruindo e instanciando de novo kkk
Cara.
Explique-se por favor, não faz sentido.
Crash Psycho
Crash Psycho
Modelador

Masculino PONTOS : 3510
REPUTAÇÃO : 170
Idade : 24
Áreas de atuação : unity 3D...
Game Design .
Modelador 3d, uso o blender.
se aperfeiçoando na unity 3D.

Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints - Página 2 WvDYdlf

https://www.instagram.com/crash_psycho/

Ir para o topo Ir para baixo

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

Mensagem por Portela Qui Jan 07, 2021 8:09 pm

glauco escreveu:
Portela escreveu:
glauco escreveu:Será que tem como fazer a Ai andar pelo cenário sem precisar de Ai Points?
 Sei não, mas acho que da pra fazer as AI aleatorias e se autodestruindo e instanciando de novo kkk
Cara.
Explique-se por favor, não faz sentido.

malz to com sono, tipo.. fazer as AI Points instanciarem aleatorias e depois de Destruilas, mas isso é gambiarra concerteza o pessoal deve ter ideia melhor... Shhh
Portela
Portela
Membro
Membro

Masculino PONTOS : 1487
REPUTAÇÃO : 5
Áreas de atuação : Noob/gambirreiro
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints - Página 2 WvDYdlf

Ir para o topo Ir para baixo

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

Mensagem por Portela Qui Jan 07, 2021 8:10 pm

glauco escreveu:
Portela escreveu:
glauco escreveu:Será que tem como fazer a Ai andar pelo cenário sem precisar de Ai Points?
 Sei não, mas acho que da pra fazer as AI aleatorias e se autodestruindo e instanciando de novo kkk
Cara.
Explique-se por favor, não faz sentido.
Usa NavMesh po !
Portela
Portela
Membro
Membro

Masculino PONTOS : 1487
REPUTAÇÃO : 5
Áreas de atuação : Noob/gambirreiro
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints - Página 2 WvDYdlf

Ir para o topo Ir para baixo

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

Mensagem por Crash Psycho Qui Jan 07, 2021 8:51 pm

Portela escreveu:
glauco escreveu:
Portela escreveu:
glauco escreveu:Será que tem como fazer a Ai andar pelo cenário sem precisar de Ai Points?
 Sei não, mas acho que da pra fazer as AI aleatorias e se autodestruindo e instanciando de novo kkk
Cara.
Explique-se por favor, não faz sentido.
Usa NavMesh po !
Tá, vou nem falar mais nada.
Crash Psycho
Crash Psycho
Modelador

Masculino PONTOS : 3510
REPUTAÇÃO : 170
Idade : 24
Áreas de atuação : unity 3D...
Game Design .
Modelador 3d, uso o blender.
se aperfeiçoando na unity 3D.

Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints - Página 2 WvDYdlf

https://www.instagram.com/crash_psycho/

Ir para o topo Ir para baixo

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

Mensagem por NKKF Qui Jan 07, 2021 10:02 pm

Glauco, cê poderia fazer o npc ir em uma direção aleatória até x metros, usa um raycast para ver se têm obstáculo.
NKKF
NKKF
ProgramadorMaster

Masculino PONTOS : 4570
REPUTAÇÃO : 574
Idade : 19
Áreas de atuação : Desenvolvedor na Unity, NodeJS, React, ReactJS, React Native, MongoDB e Firebase.
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints - Página 2 Aad8pUi

Ir para o topo Ir para baixo

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

Mensagem por Crash Psycho Sex Jan 08, 2021 12:10 am

NKKF escreveu:Glauco, cê poderia fazer o npc ir em uma direção aleatória até x metros, usa um raycast para ver se têm obstáculo.
Hun interessante
Crash Psycho
Crash Psycho
Modelador

Masculino PONTOS : 3510
REPUTAÇÃO : 170
Idade : 24
Áreas de atuação : unity 3D...
Game Design .
Modelador 3d, uso o blender.
se aperfeiçoando na unity 3D.

Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints - Página 2 WvDYdlf

https://www.instagram.com/crash_psycho/

Ir para o topo Ir para baixo

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

Mensagem por Fagner Sex Jan 08, 2021 12:31 am

Já viu isso aqui? é mais ou menos o que o NKKF falou...

[TUTORIAL] Inteligência artificial, inimigo e AIPoints - Página 2 KIljDJu
https://www.schultzgames.com/t10218-inimigo-andando-de-forma-aleatoria-sem-ser-teleportando-com-sensor-de-collider-por-tag#68730

a posição é gerada de forma aleatória, um raycast testa se a posição é válida, se for, o navmesh gera o caminho até o local sorteado... já daria uma base pra uma IA sem waypoints.
Fagner
Fagner
Moderador

Masculino PONTOS : 4193
REPUTAÇÃO : 665
Áreas de atuação : Modelagem 3D, Programação.
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints - Página 2 Aad8pUi

Ir para o topo Ir para baixo

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

Mensagem por Crash Psycho Sex Jan 08, 2021 1:02 am

Fagner escreveu:Já viu isso aqui? é mais ou menos o que o NKKF falou...

[TUTORIAL] Inteligência artificial, inimigo e AIPoints - Página 2 KIljDJu
https://www.schultzgames.com/t10218-inimigo-andando-de-forma-aleatoria-sem-ser-teleportando-com-sensor-de-collider-por-tag#68730

a posição é gerada de forma aleatória, um raycast testa se a posição é válida, se for, o navmesh gera o caminho até o local sorteado... já daria uma base pra uma IA sem waypoints.
hmmm vou tentar aplicar
Crash Psycho
Crash Psycho
Modelador

Masculino PONTOS : 3510
REPUTAÇÃO : 170
Idade : 24
Áreas de atuação : unity 3D...
Game Design .
Modelador 3d, uso o blender.
se aperfeiçoando na unity 3D.

Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints - Página 2 WvDYdlf

https://www.instagram.com/crash_psycho/

Ir para o topo Ir para baixo

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

Mensagem por michelcreis@hotmail.com Seg Mar 29, 2021 5:32 pm

Boa tarde, esse script serve para o Unity 2020

michelcreis@hotmail.com
Iniciante
Iniciante

PONTOS : 1120
REPUTAÇÃO : 0
Respeito as regras : [TUTORIAL] Inteligência artificial, inimigo e AIPoints - Página 2 WvDYdlf

Ir para o topo Ir para baixo

Página 2 de 2 Anterior  1, 2

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos