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:
Download grátis de ônibus brasileiros - Millennium II Piso Baixo Central
Unity - Deslizar Para Rotacionar o 'Personagem'
Erro ao compilar para IOS
[Devlog] Lost in the world 14/11
[Duvida] Bug ao usar Vector3.Lerp Objeto é teleportado na lata
Jogo 2D unity - trocar sprite ao apertar botão
sombras para jogos mobile
Discord para desenvolvimento de jogos
Bug/Erro da unity?
[TUTORIAL] Controle 3ª pessoa com animações mecânicas (root motion)
rotação no exio z
[TUTORIAL] Banco de dados || MySQL
(UNITY) Erro ao compilar a Build Android
Unity + MySQL
Erro de Prefab quando realiza o Build de um projeto 3D
Em busca de um modelador 3D para plataforma educacional (Já ganhamos apoio de faculdades)
[TUTORIAL] Unity 5 - Sistema Completo de PORTAS E CHAVES
Drop Shadows
[RESOLVIDO]Como aplicar textura trânsparente na unity
Unity 3D - Desenhos Com Física(Download Projeto)
Como mudar o CONTROLLER do ANIMATOR
Como criar um poligono dinamicamente?
erro no unity
movimento de uma nave
Instantiate
Problema ao rotacionar valores negativos.
Calcular hora ?
Novo estilo de estourar blocos, baixe meu jogo pessoal ... conto com a ajuda de vocês!!!
Jogo que fiz para uma Jam da minha faculdade FATEC Ourinhos.
Não consigo o Android SDK!!
[RESOLVIDO] Como faço para depois de determinado tempo acontecer algo?
CRASH AO ENTRAR NA CENA UNITY
estou procurando um bom tutorial de IA Basica
Erro ao colocar script no botão
Novo jogo em desenvolvimento, 13º andar
Text Dinâmico no botão
Sistema Pdv, Mercado, Padaria, Conveniência, Lojas Em Geral - C# VISUAL STUDIO
[TUTORIAL] - Script de lanterna pra seu jogo de terror e outros...
[RESOLVIDO] Unity - Reproduzir Videos Do Blender No Unity
Ordem de fases
[RESOLVIDO] Tenho algum erro de simbolo no script do carro o que poderia ser?
[RESOLVIDO] Dúvida. Detectar colisões nas instâncias
erro na minha IA
[TUTORIAL] While, como funciona?
Mostrar a contagem em 10K e 100M
[TUTORIAL] AI Enemy 2.0 + animações ( Jogos de terror )
Cores nos materiais sem criar material
Poderia modelar um personagem cartoon para meu projeto
Como coloco modo de criação de personagem?
[Ajuda] Assets
RayCasting + Disparo Um Bom Tipo De Video Aula.
Ajuda de Blender para Unity
Procuro Equipe Para Criação de Jogo [PAGO]
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
[RESOLVIDO] erro WaterBaseEditor.cs não encontra o caminho do WaterBase
[TUTORIAL] Criar Analógico Virtual UI Para Mobile.
[TUTORIAL] Acessar nomes de arquivos diretamente da pasta
Objeto dentro do player nao ta rotacioando
[TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
Array de prefabs
screenshot
instancia item aleatorio em varias posicoes
[TUTORIAL] Mira que fica se movendo (ocilando,tremendo,etc)
Getcomponent de C# para java
Curso barato de C#
Unity - Modelo 3D em Menu 2D
[RESOLVIDO] Camera Estilo Showroom
A um mês com unity bugado sem resposta
[GameJam] Competição organizada pela BitCodeStudios
Pegar strings de "duas em duas"
criar um piano no unity
Movimentação
Instanciar objeto onde cricar com mouse ou touch
Dúvida Sistema de Energia para jogo android
[RESOLVIDO] Inimigo patrulhando constantemente estilo mario
BUG UNITY 3D ROSA A SCENE E GAME
Dúvida. Colliders no Unity3D
Pq a grama do Unity é tao pesada?
Alguem cria uma conta na playstore pra mim? :(
Capture Panorama?
Artistas 3D e Programadores Unity3D (Remunerado)
Input Get Key
SCHULTZ Jogo de terror
(Erro) IndexOutOfRangeException:Array index is out of range
EU QUERIA COLOCAR ANUNCIOS NO MEU JOGO NA MUDANÇA DE CENAS MAS NÃO ACHO UM JEITO
Unity - Duvida Sobre a JDK Que Vocês Usam
[RESOLVIDO] Adicionar Botoes em controle mobile
admob recompensa
Unity - Duvida Sobre Atualizar
Unity Admob GDPR (como implementar ?)
Timer para mudar de câmera
The Pyramid Demo Atualizado
[____ENQUETE____] Eleições para presidente 2018 (2º turno)
Mudando cor do texto...
como dminuir o lag no meu unity 5
[JOGO MOBILE] Defeat the Illuminatis
Como chamar animação sem passar por outro parâmetros?
[TUTORIAL] Unity 5 - Botão contínuo usando UI (Manter pressionado)
unity - erro ao buildar
Hoje à(s) 3:50 pm
Hoje à(s) 12:09 pm
Hoje à(s) 11:28 am
Hoje à(s) 11:23 am
Hoje à(s) 9:31 am
Hoje à(s) 5:23 am
Hoje à(s) 1:23 am
Ontem à(s) 4:59 pm
Ontem à(s) 4:47 pm
Ontem à(s) 3:23 pm
Ontem à(s) 2:13 pm
Qua Nov 14, 2018 5:47 pm
Qua Nov 14, 2018 5:44 pm
Qua Nov 14, 2018 5:41 pm
Qua Nov 14, 2018 5:14 pm
Qua Nov 14, 2018 4:30 pm
Qua Nov 14, 2018 3:35 pm
Qua Nov 14, 2018 2:45 pm
Qua Nov 14, 2018 1:25 pm
Qua Nov 14, 2018 10:45 am
Ter Nov 13, 2018 11:25 pm
Ter Nov 13, 2018 11:23 pm
Ter Nov 13, 2018 11:18 pm
Ter Nov 13, 2018 10:55 pm
Ter Nov 13, 2018 6:21 pm
Ter Nov 13, 2018 5:55 pm
Ter Nov 13, 2018 1:30 pm
Ter Nov 13, 2018 11:33 am
Seg Nov 12, 2018 9:52 pm
Seg Nov 12, 2018 3:57 pm
Seg Nov 12, 2018 3:24 pm
Seg Nov 12, 2018 8:13 am
Seg Nov 12, 2018 8:11 am
Dom Nov 11, 2018 6:56 pm
Dom Nov 11, 2018 2:41 pm
Dom Nov 11, 2018 8:12 am
Dom Nov 11, 2018 7:57 am
Sab Nov 10, 2018 8:54 pm
Sab Nov 10, 2018 5:11 pm
Sab Nov 10, 2018 2:52 pm
Sab Nov 10, 2018 2:13 pm
Sab Nov 10, 2018 12:39 am
Sab Nov 10, 2018 12:28 am
Sex Nov 09, 2018 3:56 pm
Qui Nov 08, 2018 11:28 pm
Qui Nov 08, 2018 11:25 pm
Qui Nov 08, 2018 10:01 pm
Qui Nov 08, 2018 7:47 pm
Qui Nov 08, 2018 12:36 pm
Qui Nov 08, 2018 12:31 pm
Qui Nov 08, 2018 12:28 pm
Qui Nov 08, 2018 12:53 am
Qua Nov 07, 2018 5:52 pm
Qua Nov 07, 2018 4:04 pm
Qua Nov 07, 2018 12:49 pm
Ter Nov 06, 2018 2:05 pm
Ter Nov 06, 2018 12:30 pm
Ter Nov 06, 2018 11:32 am
Ter Nov 06, 2018 1:10 am
Seg Nov 05, 2018 6:57 pm
Seg Nov 05, 2018 3:36 pm
Seg Nov 05, 2018 12:44 am
Dom Nov 04, 2018 5:32 pm
Dom Nov 04, 2018 5:31 pm
Dom Nov 04, 2018 5:30 pm
Dom Nov 04, 2018 1:05 am
Sab Nov 03, 2018 1:36 pm
Sex Nov 02, 2018 11:38 pm
Sex Nov 02, 2018 10:55 pm
Sex Nov 02, 2018 8:16 pm
Sex Nov 02, 2018 7:50 pm
Sex Nov 02, 2018 7:41 pm
Sex Nov 02, 2018 7:27 pm
Sex Nov 02, 2018 6:36 pm
Sex Nov 02, 2018 3:27 pm
Sex Nov 02, 2018 3:35 am
Sex Nov 02, 2018 3:24 am
Qui Nov 01, 2018 3:56 pm
Qui Nov 01, 2018 3:52 pm
Qui Nov 01, 2018 1:18 pm
Qui Nov 01, 2018 7:57 am
Qui Nov 01, 2018 2:26 am
Qui Nov 01, 2018 2:05 am
Qua Out 31, 2018 9:20 pm
Qua Out 31, 2018 6:09 pm
Qua Out 31, 2018 7:17 am
Ter Out 30, 2018 11:34 pm
Ter Out 30, 2018 9:34 pm
Ter Out 30, 2018 5:29 pm
Ter Out 30, 2018 8:12 am
Ter Out 30, 2018 8:05 am
Seg Out 29, 2018 2:21 pm
Seg Out 29, 2018 12:03 am
Dom Out 28, 2018 5:33 pm
Dom Out 28, 2018 11:58 am
Dom Out 28, 2018 11:57 am
Sab Out 27, 2018 11:29 am
Sab Out 27, 2018 11:22 am
Sex Out 26, 2018 8:31 pm
SuperGamer
Magnatah
eduardonog30
Mateus2583
DuViDoSo
Regis garcia
MarceloYBP
JohnRambo
Zack2
francieljesus
theus.mors
sabbath
sabbath
sabbath
McbDJ
rZwr
Fabricio Alves
NKKF
TioUV
JohnRambo
MarcosSchultz
MarcosSchultz
MarceloYBP
theus.mors
juniorhotes
Weslley
Callyde Jr
hamerom
luansantos
francisco barroso
Vitor Paulino
dstaroski
dstaroski
SuperGamer
Patrick
dstaroski
dstaroski
SuperGamer
Magnatah
francisco barroso
Samuelostgamer
GattiMene
MarceloYBP
SuperGamer
Tegh
francisco barroso
NKKF
GameLACK
dstaroski
dstaroski
dstaroski
jack2117
Mathss
JohnRambo
Daniel Dória
JohnRambo
gurgelg752
francisco barroso
MarcosSchultz
Nalfam
dstaroski
MarcosSchultz
dstaroski
dstaroski
dstaroski
Magnatah
Teio
Callyde Jr
hetrodo
NKKF
CarlosDT94
MarcosSchultz
MarcosSchultz
Magnatah
MrMattD
MarcosSchultz
MarcosSchultz
francisco barroso
francisco barroso
Callyde Jr
Dom3000
MarcosSchultz
MarcosSchultz
francisco barroso
MATHEUS1233
dstaroski
francisco barroso
theus.mors
Magnatah
dstaroski
dstaroski
dstaroski
MarcosSchultz
mafipt
dstaroski
dstaroski
Weslley
Weslley
Magnatah

[TUTORIAL] AI Enemy ( Jogos de terror )

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

Ir em baixo

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

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

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

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

Ver perfil do usuário

Voltar ao Topo Ir em baixo

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

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

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

Sergio Pimentel
Iniciante
Iniciante

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

Ver perfil do usuário

Voltar ao Topo Ir em baixo

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

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

meu esta dando erro no Nav Mesh Agent.
Assets/Standard Assets/INTELIGENCIA.cs(5,10): error CS0246: The type or namespace name `NavMeshAgent' could not be found. Are you missing `UnityEngine.AI' using directive?
oq eu faço?

marx
Iniciante
Iniciante

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

Ver perfil do usuário

Voltar ao Topo Ir em baixo

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

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

@marx escreveu:meu esta dando erro no Nav Mesh Agent.
Assets/Standard Assets/INTELIGENCIA.cs(5,10): error CS0246: The type or namespace name `NavMeshAgent' could not be found. Are you missing `UnityEngine.AI' using directive?
oq eu faço?
Esse erro é porque você não esta usando a livraria AI coloque junto com as outras isso:
Código:
using UnityEngine.AI;
avatar
rafaelllsd
ProgramadorMaster

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

Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

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

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

@rafaelllsd escreveu:
@marx escreveu:meu esta dando erro no Nav Mesh Agent.
Assets/Standard Assets/INTELIGENCIA.cs(5,10): error CS0246: The type or namespace name `NavMeshAgent' could not be found. Are you missing `UnityEngine.AI' using directive?
oq eu faço?
Esse erro é porque você não esta usando a livraria AI coloque junto com as outras isso:
Código:
using UnityEngine.AI;
vlw!!

marx
Iniciante
Iniciante

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

Ver perfil do usuário

Voltar ao Topo Ir em baixo

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

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

COLOQUEI VIDA NO SCRIPT, PRA QUANDO CHEGAR A ''0'' MUDAR A ''VELOCIDADE''(ANIMAÇAO DE MORTE) E DESTRUIR O ''INIMIGO'',MAS ELE N PERDE VIDA NUNCA.
ESTOU USANDO PARA ATINGIR ELE O SCRIPT DAS ARMAS E O RAYCAST .
PQ N DA CERTO?



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

public class ESQUELETO : MonoBehaviour { 
public Transform Player;
private UnityEngine.AI.NavMeshAgent naveMesh;
private float DistanciaDoPlayer, DistanciaDoAIPoint;
public float DistanciaDePercepcao = 30,DistanciaDeSeguir = 20, DistanciaDeAtacar = 2, VelocidadeDePasseio = 3, VelocidadeDePerseguicao = 6,TempoPorAtaque = 1.5f, DanoDoInimigo = 40;
private bool VendoOPlayer;
public Transform[] DestinosAleatorios;
private int AIPointAtual; 
private bool PerseguindoAlgo, contadorPerseguindoAlgo,atacandoAlgo;
private float cronometroDaPerseguicao,cronometroAtaque;
public float vida = 100;
bool chamouMorte = false;
private Animator controlInimigo;
public float velocidade;
public Coroutine StartCoroutine;

void Start (){
controlInimigo = GetComponent<Animator>();
AIPointAtual = Random.Range (0, DestinosAleatorios.Length);
naveMesh = transform.GetComponent<UnityEngine.AI.NavMeshAgent> ();
}
void Update (){
controlInimigo.SetFloat ("velocidade", velocidade);
if (vida <= 0) {
vida = 0;
if (chamouMorte == false) {
chamouMorte = true;
velocidade = 4.1f;

StartCoroutine ("Morrer");
}
}
DistanciaDoPlayer = Vector3.Distance(Player.transform.position,transform.position);
DistanciaDoAIPoint =  Vector3.Distance(DestinosAleatorios[AIPointAtual].transform.position,transform.position);
//============================== RAYCAST ===================================//
RaycastHit hit;
Vector3 deOnde = transform.position;
Vector3 paraOnde = Player.transform.position;
Vector3 direction = paraOnde - deOnde;
if(Physics.Raycast (transform.position,direction,out hit,1000) && DistanciaDoPlayer < DistanciaDePercepcao ){
if(hit.collider.gameObject.CompareTag("Player")){
VendoOPlayer = true;
}else{
VendoOPlayer = false;
}
}
//================ CHECHAGENS E DECISOES DO INIMIGO ================//
if(DistanciaDoPlayer > DistanciaDePercepcao){
Passear();
}
if (DistanciaDoPlayer <= DistanciaDePercepcao && DistanciaDoPlayer > DistanciaDeSeguir) {
if(VendoOPlayer == true){
Olhar ();
}else{
Passear();
}
}
if (DistanciaDoPlayer <= DistanciaDeSeguir && DistanciaDoPlayer > DistanciaDeAtacar) {
if(VendoOPlayer == true){
Perseguir();
PerseguindoAlgo = true;
}else{
Passear();
}
}
if (DistanciaDoPlayer <= DistanciaDeAtacar) {
Atacar();
}

//COMANDOS DE PASSEAR
if (DistanciaDoAIPoint <= 2) {
velocidade = 1.1f;
AIPointAtual = Random.Range (0, DestinosAleatorios.Length);
Passear();
}
//CONTADORES DE PERSEGUICAO
if (contadorPerseguindoAlgo == true) {
cronometroDaPerseguicao += Time.deltaTime;

}
if (cronometroDaPerseguicao >= 5 && VendoOPlayer == false) {
contadorPerseguindoAlgo = false;
cronometroDaPerseguicao = 0;
PerseguindoAlgo = false;
}
// CONTADOR DE ATAQUE
if (atacandoAlgo == true) {
cronometroAtaque += Time.deltaTime;
}
if (cronometroAtaque >= TempoPorAtaque && DistanciaDoPlayer <= DistanciaDeAtacar) {
atacandoAlgo = true;
cronometroAtaque = 0;
PLAYER.VIDA = PLAYER.VIDA - DanoDoInimigo;
Debug.Log ("recebeuAtaque");
} else if (cronometroAtaque >= TempoPorAtaque && DistanciaDoPlayer > DistanciaDeAtacar) {
atacandoAlgo = false;
cronometroAtaque = 0;
Debug.Log ("errou");
}

}

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

void Olhar(){
velocidade = 0f;
naveMesh.speed = 0;
transform.LookAt (Player);
}
void Perseguir(){
velocidade = 2.1f;
naveMesh.acceleration = 8;
naveMesh.speed = VelocidadeDePerseguicao;
naveMesh.destination = Player.position;

}

void Atacar (){
velocidade = 3.1f;
atacandoAlgo = true;
}
IEnumerator Morrer(){



GetComponent<MeshRenderer> ().material.color = Color.red;
yield return new WaitForSeconds (10);
Destroy (gameObject);
}

marx
Iniciante
Iniciante

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

Ver perfil do usuário

Voltar ao Topo Ir em baixo

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

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

marx, crie um tópico separado para a sua dúvida, postando os scripts do Player e do inimigo, a tag que o seu jogador tem, etc
avatar
MarcosSchultz
Administrador

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

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

Voltar ao Topo Ir em baixo

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

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

Marcos primeiramente agradeço por ser este professor incrível, com muitas aulas e todas boas.

Eu segui todo o vídeo, e o meu inimigo faz tudo correto, porém quando ele esta passeando e me vê, ele corre até mim e me mata, tudo ok, mas quando eu consigo fugir ele não vai passear de novo ele apenas fica parado no lugar.

Agradeço a quem me responder!!

Pedro Canassa Garcia
Iniciante
Iniciante

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

Ver perfil do usuário

Voltar ao Topo Ir em baixo

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

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

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

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

Ver perfil do usuário

Voltar ao Topo Ir em baixo

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

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

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

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

Respeito as regras :

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

Voltar ao Topo Ir em baixo

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

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

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

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

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

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

Voltar ao Topo Ir em baixo

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

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

depois que o inimigo ve o player ele fica parado e não volta a seguir os points, e eu não fiz nenhuma alteração no script então não tem como eu saber onde esta o erro, obs: o script se auto atualizou na vdd vou mandar ele a seguir pra ve se podem me ajudar! 
using UnityEngine;
using System.Collections;
public class INTELIGENCIA : MonoBehaviour { 
public Transform Player;
private UnityEngine.AI.NavMeshAgent naveMesh;
private float DistanciaDoPlayer, DistanciaDoAIPoint;
public float DistanciaDePercepcao = 30,DistanciaDeSeguir = 20, DistanciaDeAtacar = 2, VelocidadeDePasseio = 3, VelocidadeDePerseguicao = 6,TempoPorAtaque = 1.5f, DanoDoInimigo = 40;
private bool VendoOPlayer;
public Transform[] DestinosAleatorios;
private int AIPointAtual; 
private bool PerseguindoAlgo, contadorPerseguindoAlgo,atacandoAlgo;
private float cronometroDaPerseguicao,cronometroAtaque;
void Start (){
AIPointAtual = Random.Range (0, DestinosAleatorios.Length);
naveMesh = transform.GetComponent<UnityEngine.AI.NavMeshAgent> ();
}
void Update (){
DistanciaDoPlayer = Vector3.Distance(Player.transform.position,transform.position);
DistanciaDoAIPoint =  Vector3.Distance(DestinosAleatorios[AIPointAtual].transform.position,transform.position);
//============================== RAYCAST ===================================//
RaycastHit hit;
Vector3 deOnde = transform.position;
Vector3 paraOnde = Player.transform.position;
Vector3 direction = paraOnde - deOnde;
if(Physics.Raycast (transform.position,direction,out hit,1000) && DistanciaDoPlayer < DistanciaDePercepcao ){
if(hit.collider.gameObject.CompareTag("Player")){
VendoOPlayer = true;
}else{
VendoOPlayer = false;
}
}
//================ CHECHAGENS E DECISOES DO INIMIGO ================//
if(DistanciaDoPlayer > DistanciaDePercepcao){
Passear();
}
if (DistanciaDoPlayer <= DistanciaDePercepcao && DistanciaDoPlayer > DistanciaDeSeguir) {
if(VendoOPlayer == true){
Olhar ();
}else{
Passear();
}
}
if (DistanciaDoPlayer <= DistanciaDeSeguir && DistanciaDoPlayer > DistanciaDeAtacar) {
if(VendoOPlayer == true){
Perseguir();
PerseguindoAlgo = true;
}else{
Passear();
}
}
if (DistanciaDoPlayer <= DistanciaDeAtacar) {
Atacar();
}
//COMANDOS DE PASSEAR
if (DistanciaDoAIPoint <= 2) {
AIPointAtual = Random.Range (0, DestinosAleatorios.Length);
Passear();
}
//CONTADORES DE PERSEGUICAO
if (contadorPerseguindoAlgo == true) {
cronometroDaPerseguicao += Time.deltaTime;
}
if (cronometroDaPerseguicao >= 5 && VendoOPlayer == false) {
contadorPerseguindoAlgo = false;
cronometroDaPerseguicao = 0;
PerseguindoAlgo = false;
}
// CONTADOR DE ATAQUE
if (atacandoAlgo == true) {
cronometroAtaque += Time.deltaTime;
}
if (cronometroAtaque >= TempoPorAtaque && DistanciaDoPlayer <= DistanciaDeAtacar) {
atacandoAlgo = true;
cronometroAtaque = 0;
PLAYER1.VIDA = PLAYER1.VIDA - DanoDoInimigo;
Debug.Log ("recebeuAtaque");
} else if (cronometroAtaque >= TempoPorAtaque && DistanciaDoPlayer > DistanciaDeAtacar) {
atacandoAlgo = false;
cronometroAtaque = 0;
Debug.Log ("errou");
}
}
void Passear (){
if (PerseguindoAlgo == false) {
naveMesh.acceleration = 5;
naveMesh.speed = VelocidadeDePasseio;
naveMesh.destination = DestinosAleatorios [AIPointAtual].position;
} else if (PerseguindoAlgo == true) {
contadorPerseguindoAlgo = true;
}
}
void Olhar(){
naveMesh.speed = 0;
transform.LookAt (Player);
}
void Perseguir(){
naveMesh.acceleration = 8;
naveMesh.speed = VelocidadeDePerseguicao;
naveMesh.destination = Player.position;
}
void Atacar (){
atacandoAlgo = true;
}
}

marcelo123
Membro
Membro

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

Ver perfil do usuário

Voltar ao Topo Ir em baixo

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

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

Estou criando um RPG simples, quero utilizar este código para criar a movimentação nos inimigos em pontos curtos, porém por algum motivo o inimigo associado ao NavMesh esta ignorando os blocos que coloquei para teste. OBS: Os Scripts só foram alterados por questões de sintaxe do meu projeto. 
Meu Bake foi configurado da seguinte forma:


E o NavMeshAgent do Player assim:


Alguma ideia do que possa ser?

Joaopm1
Avançado
Avançado

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

Ver perfil do usuário

Voltar ao Topo Ir em baixo

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

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

Excelente trabalho Marcos, primeira duvida minha aqui no Site, Fiz tudo correto porem esta dando erro em duas linhas do script "INTELIGENCIA", dizendo que nao pode encontrar o NavMeshAgent linha 5, e tambem na linha 14 (AIPointAtual = Random.Range (0, DestinosAleatorios.Length)Piscadinha desde ja agradeço e parabens pelo excelente trabalho!

BrazaTattoo
Iniciante
Iniciante

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

Ver perfil do usuário

Voltar ao Topo Ir em baixo

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

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

@BrazaTattoo escreveu:Excelente trabalho Marcos, primeira duvida minha aqui no Site, Fiz tudo correto porem esta dando erro em duas linhas do script "INTELIGENCIA", dizendo que nao pode encontrar o NavMeshAgent linha 5, e tambem na linha 14 (AIPointAtual = Random.Range (0, DestinosAleatorios.Length)Piscadinha desde ja agradeço e parabens pelo excelente trabalho!
Buenas noches! pode ser algum método no código que precisa ser atualizado devido as mudanças de versões da Unity. Posta ai pra gente o código dar uma olhada.

Abraço!
avatar
dstaroski
Instrutor

Masculino PONTOS : 3802
REPUTAÇÃO : 987
Idade : 29
Áreas de atuação : Téc. Hardware e Redes, Programação C#.

Respeito as regras :

Ver perfil do usuário https://gamejolt.com/games/defeattheilluminatis/347786

Voltar ao Topo Ir em baixo

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

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

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

BrazaTattoo
Iniciante
Iniciante

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

Ver perfil do usuário

Voltar ao Topo Ir em baixo

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

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

opa vou mandar duas imagens, obrigado pela atençao!


http://uploaddeimagens.com.br/imagens/script-png-2352f4c8-4658-4e12-b230-af3858b98120

http://uploaddeimagens.com.br/imagens/zumbi-png-c8765eb3-37f2-48c5-8914-53174d8cc36f

BrazaTattoo
Iniciante
Iniciante

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

Ver perfil do usuário

Voltar ao Topo Ir em baixo

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

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

Marcos, por favor, eu assisti ao seu tutorial mas por algum motivo meu inimigo não está indo atrás do player, se eu chego no alcance ele me acerta mas não me persegue ;-;
Obs: mudei as variáveis para inglês pois estou mais acostumado, mas tentei com o código que estava aqui no forum e ele também não me persegue
Obs2: Lembrei também de mudar a tag para Player, tanto que até adicionei no código dele a linha transform.tag = "Player";
segue o código:
Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;

public class Monster : MonoBehaviour {
   
    public Transform Player;
    public float perceptDistance = 30, followDistance = 20, attackDistance = 2;
    public float velocityWalk = 3, velocityFollow = 6, timePerAttack = 1.5f, damege = 100;
    public Transform[] destinyRandom;

    private NavMeshAgent naveMech;
    private float distancePlayer, distanceAipoint;
    private bool seePlayer;
    private int nowAIpoint;
    private bool followAnything, contFA, attackAnything;
    private float cronoFollow, cronoAttack;

   // Use this for initialization
   void Start () {
        nowAIpoint = Random.Range(0, destinyRandom.Length);
        naveMech = transform.GetComponent<NavMeshAgent>();
   }
   
   // Update is called once per frame
   void Update () {
        distancePlayer = Vector3.Distance(Player.transform.position, transform.position);
        distanceAipoint = Vector3.Distance(destinyRandom[nowAIpoint].transform.position, transform.position);
        //====Raycast====//
        RaycastHit hit;
        Vector3 location = transform.position;
        Vector3 forLocation = Player.transform.position;
        Vector3 direction = forLocation - location;
        if(Physics.Raycast(transform.position, direction, out hit, 150) && distancePlayer < perceptDistance)
        {
            if (hit.collider.gameObject.CompareTag("Player"))
            {
                seePlayer = true;
            }
            else
            {
                seePlayer = false;
            }
        }
        //====Checagem e Decisões do Inimigo====
        if (distancePlayer > perceptDistance)
        {
            Walk();
        }
        if (distancePlayer <= perceptDistance && distancePlayer > followDistance)
        {
            if(seePlayer == true)
            {
                See();
            }
            else
            {
                Walk();
            }
        }
        if(distancePlayer <= followDistance && distancePlayer > attackDistance)
        {
            if (seePlayer == true)
            {
                RunOut();
                followAnything = true;
            }
            else
            {
                Walk();
            }
        }
        if(distancePlayer <= attackDistance)
        {
            Attack();
        }
        //Comandos de Walk
        if(distanceAipoint <= 2)
        {
            nowAIpoint = Random.Range(0, destinyRandom.Length);
            Walk();
        }
        //Contadores de Perseguição
        if(contFA == true)
        {
            cronoFollow += Time.deltaTime;
            Debug.Log("Entrou!");
        }
        if(cronoFollow >= 5 && seePlayer == false)
        {
            contFA = false;
            cronoFollow = 0;
            followAnything = false;
        }
        //Contador Attack
        if(attackAnything == true)
        {
            cronoAttack += Time.deltaTime;
        }
        if(cronoAttack >= timePerAttack && distancePlayer <= attackDistance)
        {
            attackAnything = true;
            cronoAttack = 0;
            PlayerBehaviour.life += -damege;
        }
        else if(cronoAttack >= timePerAttack && distancePlayer > attackDistance)
        {
            attackAnything = false;
            cronoAttack = 0;
        }
    }
    void Walk()
    {
        if(followAnything == false)
        {
            naveMech.acceleration = 5;
            naveMech.speed = velocityWalk;
            naveMech.destination = destinyRandom[nowAIpoint].position;
        }
        else if(followAnything == true)
        {
            contFA = true;
        }
    }
    void See()
    {
        naveMech.speed = 0;
        transform.LookAt(Player);
    }
    void RunOut()
    {
        naveMech.acceleration = 8;
        naveMech.speed = velocityFollow;
        naveMech.destination = Player.position;
    }
    void Attack()
    {
        attackAnything = true;
    }
}

Mourao
Iniciante
Iniciante

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

Ver perfil do usuário

Voltar ao Topo Ir em baixo

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

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

@Mourao escreveu:Marcos, por favor, eu assisti ao seu tutorial mas por algum motivo meu inimigo não está indo atrás do player, se eu chego no alcance ele me acerta mas não me persegue ;-;
Obs: mudei as variáveis para inglês pois estou mais acostumado, mas tentei com o código que estava aqui no forum e ele também não me persegue
Obs2: Lembrei também de mudar a tag para Player, tanto que até adicionei no código dele a linha transform.tag = "Player";
segue o código:
Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;

public class Monster : MonoBehaviour {
    
    public Transform Player;
    public float perceptDistance = 30, followDistance = 20, attackDistance = 2;
    public float velocityWalk = 3, velocityFollow = 6, timePerAttack = 1.5f, damege = 100;
    public Transform[] destinyRandom;

    private NavMeshAgent naveMech;
    private float distancePlayer, distanceAipoint;
    private bool seePlayer;
    private int nowAIpoint;
    private bool followAnything, contFA, attackAnything;
    private float cronoFollow, cronoAttack;

 // Use this for initialization
 void Start () {
        nowAIpoint = Random.Range(0, destinyRandom.Length);
        naveMech = transform.GetComponent<NavMeshAgent>();
 }
 
 // Update is called once per frame
 void Update () {
        distancePlayer = Vector3.Distance(Player.transform.position, transform.position);
        distanceAipoint = Vector3.Distance(destinyRandom[nowAIpoint].transform.position, transform.position);
        //====Raycast====//
        RaycastHit hit;
        Vector3 location = transform.position;
        Vector3 forLocation = Player.transform.position;
        Vector3 direction = forLocation - location;
        if(Physics.Raycast(transform.position, direction, out hit, 150) && distancePlayer < perceptDistance)
        {
            if (hit.collider.gameObject.CompareTag("Player"))
            {
                seePlayer = true;
            }
            else
            {
                seePlayer = false;
            }
        }
        //====Checagem e Decisões do Inimigo====
        if (distancePlayer > perceptDistance)
        {
            Walk();
        }
        if (distancePlayer <= perceptDistance && distancePlayer > followDistance)
        {
            if(seePlayer == true)
            {
                See();
            }
            else
            {
                Walk();
            }
        }
        if(distancePlayer <= followDistance && distancePlayer > attackDistance)
        {
            if (seePlayer == true)
            {
                RunOut();
                followAnything = true;
            }
            else
            {
                Walk();
            }
        }
        if(distancePlayer <= attackDistance)
        {
            Attack();
        }
        //Comandos de Walk
        if(distanceAipoint <= 2)
        {
            nowAIpoint = Random.Range(0, destinyRandom.Length);
            Walk();
        }
        //Contadores de Perseguição
        if(contFA == true)
        {
            cronoFollow += Time.deltaTime;
            Debug.Log("Entrou!");
        }
        if(cronoFollow >= 5 && seePlayer == false)
        {
            contFA = false;
            cronoFollow = 0;
            followAnything = false;
        }
        //Contador Attack
        if(attackAnything == true)
        {
            cronoAttack += Time.deltaTime;
        }
        if(cronoAttack >= timePerAttack && distancePlayer <= attackDistance)
        {
            attackAnything = true;
            cronoAttack = 0;
            PlayerBehaviour.life += -damege;
        }
        else if(cronoAttack >= timePerAttack && distancePlayer > attackDistance)
        {
            attackAnything = false;
            cronoAttack = 0;
        }
    }
    void Walk()
    {
        if(followAnything == false)
        {
            naveMech.acceleration = 5;
            naveMech.speed = velocityWalk;
            naveMech.destination = destinyRandom[nowAIpoint].position;
        }
        else if(followAnything == true)
        {
            contFA = true;
        }
    }
    void See()
    {
        naveMech.speed = 0;
        transform.LookAt(Player);
    }
    void RunOut()
    {
        naveMech.acceleration = 8;
        naveMech.speed = velocityFollow;
        naveMech.destination = Player.position;
    }
    void Attack()
    {
        attackAnything = true;
    }
}

tende deixar esta variável pública: 'seePlayer' 

E veja se ela está ficando verdadeira em algum momento. Se não estiver, então é problema no Raycast
avatar
MarcosSchultz
Administrador

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

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

Voltar ao Topo Ir em baixo

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

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

Ela não ficou verdadeira em nenhum momento.

Mourao
Iniciante
Iniciante

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

Ver perfil do usuário

Voltar ao Topo Ir em baixo

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

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

OK, tente utilizar este código abaixo e veja se está aparecendo a mensagem "entrou no if do raycast" enquanto você usa o código

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

public class Monster : MonoBehaviour {

   public Transform Player;
   public float perceptDistance = 30, followDistance = 20, attackDistance = 2;
   public float velocityWalk = 3, velocityFollow = 6, timePerAttack = 1.5f, damege = 100;
   public Transform[] destinyRandom;

   private NavMeshAgent naveMech;
   private float distancePlayer, distanceAipoint;
   private bool seePlayer;
   private int nowAIpoint;
   private bool followAnything, contFA, attackAnything;
   private float cronoFollow, cronoAttack;

   // Use this for initialization
   void Start () {
      nowAIpoint = Random.Range(0, destinyRandom.Length);
      naveMech = transform.GetComponent<NavMeshAgent>();
   }

   // Update is called once per frame
   void Update () {
      distancePlayer = Vector3.Distance(Player.transform.position, transform.position);
      distanceAipoint = Vector3.Distance(destinyRandom[nowAIpoint].transform.position, transform.position);
      //====Raycast====//
      RaycastHit hit;
      Vector3 location = transform.position;
      Vector3 forLocation = Player.transform.position;
      Vector3 direction = forLocation - location;
      if(Physics.Raycast(transform.position, direction, out hit, 150) && distancePlayer < perceptDistance)
      {
         Debug.Log ("entrou no if do raycast");
         if (hit.collider.gameObject.CompareTag("Player"))
         {
            seePlayer = true;
         }
         else
         {
            seePlayer = false;
         }
      }
      //====Checagem e Decisões do Inimigo====
      if (distancePlayer > perceptDistance)
      {
         Walk();
      }
      if (distancePlayer <= perceptDistance && distancePlayer > followDistance)
      {
         if(seePlayer == true)
         {
            See();
         }
         else
         {
            Walk();
         }
      }
      if(distancePlayer <= followDistance && distancePlayer > attackDistance)
      {
         if (seePlayer == true)
         {
            RunOut();
            followAnything = true;
         }
         else
         {
            Walk();
         }
      }
      if(distancePlayer <= attackDistance)
      {
         Attack();
      }
      //Comandos de Walk
      if(distanceAipoint <= 2)
      {
         nowAIpoint = Random.Range(0, destinyRandom.Length);
         Walk();
      }
      //Contadores de Perseguição
      if(contFA == true)
      {
         cronoFollow += Time.deltaTime;
         Debug.Log("Entrou!");
      }
      if(cronoFollow >= 5 && seePlayer == false)
      {
         contFA = false;
         cronoFollow = 0;
         followAnything = false;
      }
      //Contador Attack
      if(attackAnything == true)
      {
         cronoAttack += Time.deltaTime;
      }
      if(cronoAttack >= timePerAttack && distancePlayer <= attackDistance)
      {
         attackAnything = true;
         cronoAttack = 0;
         PlayerBehaviour.life += -damege;
      }
      else if(cronoAttack >= timePerAttack && distancePlayer > attackDistance)
      {
         attackAnything = false;
         cronoAttack = 0;
      }
   }
   void Walk()
   {
      if(followAnything == false)
      {
         naveMech.acceleration = 5;
         naveMech.speed = velocityWalk;
         naveMech.destination = destinyRandom[nowAIpoint].position;
      }
      else if(followAnything == true)
      {
         contFA = true;
      }
   }
   void See()
   {
      naveMech.speed = 0;
      transform.LookAt(Player);
   }
   void RunOut()
   {
      naveMech.acceleration = 8;
      naveMech.speed = velocityFollow;
      naveMech.destination = Player.position;
   }
   void Attack()
   {
      attackAnything = true;
   }
}



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

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

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

Voltar ao Topo Ir em baixo

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

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

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

Mourao
Iniciante
Iniciante

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

Ver perfil do usuário

Voltar ao Topo Ir em baixo

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

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

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

alguem me ajuda

kaufergomi
Iniciante
Iniciante

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

Ver perfil do usuário

Voltar ao Topo Ir em baixo

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

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

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

alguem me ajuda


Tente utilizar a biblioteca


using UnityEngine.UI;
avatar
MarcosSchultz
Administrador

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

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

Voltar ao Topo Ir em baixo

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

Voltar ao Topo

- Tópicos similares

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