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:
Dark blue sword RPG low poly
Preciso de ajuda em um script para o trabalho do meu estágio.
Script de health de inimigo sendo acessado mesmo sem acerta o inimigo
Atualizado (The Pyramid 1.1.1)
[TUTORIAL] Como criar um JOGO DE TERROR
Problema com o Shader (Shader Bloqueado)
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
Como faço para o player agachar
Erro ao carregar cena salva
Resolução Resposiva
Skybox da unity rosa
[TUTORIAL] Controle 3ª pessoa com animações mecânicas (root motion)
tem como mudar a cor desse fundo de distância azul?
PROBLEMA EM COPIAR SCRIPTS
[TUTORIAL] Otimização Simples por distância
Inventário de objetos 2D
video aula videoplayback easy ar /unity
como faz LookAt em 2d
Visual studio nao instala com compatibilidade com a unity :C
[JOGO MOBILE] The Sprinter Maze / Agradecimentos
Criar jogo de terror
Botao Home(Native do Android)
personagem do unity sem animaçao e caindo pra baixo
Carregar video por url remote settings
Custom Inspector
Montando equipe! [Game survival]
É recomendado fazer cidades fictícias no sketchup?
[TUTORIAL] AI Enemy 2.0 + animações ( Jogos de terror )
Sprite crescer em linha reta como um laser 2D
[___COMO UTILIZAR O FÓRUM___] Principais botões e suas funções
[____APOIE O FÓRUM E O CANAL E GANHE RECOMPENSAS____]
[____ENQUETE____] Eleições para presidente 2018
[RESOLVIDO] Problema para Carregar cena
[RESOLVIDO] Como exportar o modelo sem o seguinte prefab:
[RESOLVIDO] correr character controller
Problema com Wheel Collider
Ajuda na criação de AudioSource
Ambient Occlusion para mobile.
Erro ao instalar o componente da Unity no Visual Studio
[____SUGESTÕES PARA O FÓRUM____]
[PROJETO MOBILE] Defeat the Illuminatis
Camera Estilo Gta (Livre que Volta Sozinha)
O básico do script
[____ADERIR A UMA CATEGORIA NO FÓRUM____]
Precisa-se DE Modelador/Animador Para Um Jogo de RPG Online..
unity - erro ao salvar dados
Duvidas com Json
Artistas 3D e Programadores Unity3D (Remunerado)
[TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5
[TUTORIAL ] Script para Cutscenes
The Pyramid Demo Atualizado
Problemas com Colisores
Como fazer a vida ficar encima do player enquanto ele se move
Camera olhar para player em planeta esférico (estilo Mario Galaxy)
[RESOLVIDO] Ativar um Unico Objeto da Array.
tela preta do unity apos abrir no celular..
Procuro desenvolvedor Google Maps
Destruir Terreno
[TUTORIAL] Inteligência artificial, inimigo e AIPoints
Erro de arquivo CSPROJ na Unity
[RESOLVIDO] Diminuir um número
[RESOLVIDO] String.contains
Command 888
[TUTORIAL] Mover personagem com Touch, no estilo SUBWAY SURFERS
Ajuda com código Raycast2D
[TUTORIAL] Bubble Sort - Algoritmo
touch do android em C# Unity
[TUTORIAL] Gerar números aleatórios SEM REPETIR (método com lista)
[TUTORIAL] Sistema de Lanterna com Pilhas
Dúvida, poupar processador.
Gerador de senha
(ARQUIVO) Leia aqui como obter sucesso com seu jogo independente?
Alguém pode corrigir as roupas do meu personagem? (Modelagem 3D - Pedido)
Dúvida em relação ao Enum
Para quem é fã de The King of Fighters!
Bora entrar no Discord.. Tirando Duvidas Online..
Bugando depois do Build.
[_ASSET_] MS Vehicle System (Vehicle Controller)
[RESOLVIDO] Mudança de GUI para UI?
Alguem pode me ajudar? tenho esse erro aqui em um script mas nao consigo resolver...:
Grupo de personagens
[Dúvida] Multiplayer Client Object Spawn
PLAYER NAO MOVER ENQUANTO ESTA ABAIXADO
Unity - Erro ao Acessar Classe de Objeto
Ajuda com sistema de flecha com mira pareada com a câmera
PAGO POR SERVIÇO, crianção de jogo android 2d online
Simulador de Controle de Tráfego Aéreo
[RESOLVIDO] Problema com Compilação para Android
Como otimizar minha criação de labirintos?
[RESOLVIDO] Unity - Soma Entre Strings
Força do pulo
java é seguro? Node.js: Server-side JavaScript é seguro?
Input de Player (Android)
Melhor maneira de se colocar som de passos em um jogo 3D ?
Tutorial UNet MULTIPLAYER
Testa meu game Please!!!
[RESOLVIDO] Ajuda Sistema de colheita/fazenda
[Formação de Equipe] Battles of Worlds
[RESOLVIDO] Raycast
Hoje à(s) 6:01 pm
Hoje à(s) 5:46 pm
Hoje à(s) 1:27 pm
Hoje à(s) 12:53 pm
Hoje à(s) 10:02 am
Ontem à(s) 8:10 pm
Ontem à(s) 7:43 pm
Ontem à(s) 7:16 pm
Ontem à(s) 7:11 pm
Ontem à(s) 7:10 pm
Ontem à(s) 3:02 pm
Ontem à(s) 1:17 pm
Ontem à(s) 10:51 am
Ontem à(s) 10:34 am
Ontem à(s) 10:23 am
Ontem à(s) 10:21 am
Ontem à(s) 2:14 am
Ontem à(s) 1:17 am
Ter Set 18, 2018 9:01 pm
Ter Set 18, 2018 1:59 pm
Ter Set 18, 2018 11:44 am
Ter Set 18, 2018 2:48 am
Seg Set 17, 2018 10:05 pm
Seg Set 17, 2018 7:55 pm
Seg Set 17, 2018 7:54 pm
Seg Set 17, 2018 6:46 pm
Seg Set 17, 2018 12:58 pm
Seg Set 17, 2018 12:54 pm
Seg Set 17, 2018 8:18 am
Seg Set 17, 2018 7:36 am
Seg Set 17, 2018 7:35 am
Seg Set 17, 2018 7:34 am
Dom Set 16, 2018 11:15 pm
Dom Set 16, 2018 11:13 pm
Dom Set 16, 2018 4:50 pm
Dom Set 16, 2018 5:13 am
Sab Set 15, 2018 10:06 pm
Sab Set 15, 2018 10:00 pm
Sex Set 14, 2018 8:41 pm
Sex Set 14, 2018 8:37 pm
Sex Set 14, 2018 6:57 pm
Sex Set 14, 2018 5:17 pm
Sex Set 14, 2018 2:04 pm
Sex Set 14, 2018 11:10 am
Qui Set 13, 2018 3:36 pm
Qui Set 13, 2018 10:14 am
Qui Set 13, 2018 9:48 am
Qui Set 13, 2018 9:25 am
Qua Set 12, 2018 11:40 pm
Qua Set 12, 2018 6:04 pm
Qua Set 12, 2018 12:57 pm
Qua Set 12, 2018 3:33 am
Qua Set 12, 2018 12:25 am
Ter Set 11, 2018 8:00 pm
Ter Set 11, 2018 4:20 pm
Ter Set 11, 2018 2:52 pm
Ter Set 11, 2018 2:20 pm
Ter Set 11, 2018 12:27 pm
Seg Set 10, 2018 11:10 pm
Seg Set 10, 2018 8:29 pm
Seg Set 10, 2018 7:17 pm
Seg Set 10, 2018 6:47 pm
Seg Set 10, 2018 12:08 pm
Seg Set 10, 2018 9:07 am
Dom Set 09, 2018 11:27 pm
Dom Set 09, 2018 6:58 pm
Dom Set 09, 2018 3:53 am
Sab Set 08, 2018 11:37 pm
Sab Set 08, 2018 11:29 pm
Sab Set 08, 2018 11:23 pm
Sab Set 08, 2018 10:23 pm
Sab Set 08, 2018 6:23 pm
Sab Set 08, 2018 5:07 pm
Sab Set 08, 2018 1:24 pm
Sab Set 08, 2018 1:05 pm
Sab Set 08, 2018 11:40 am
Sab Set 08, 2018 10:40 am
Sab Set 08, 2018 2:12 am
Sex Set 07, 2018 12:47 pm
Sex Set 07, 2018 9:37 am
Sex Set 07, 2018 8:59 am
Sex Set 07, 2018 5:57 am
Qua Set 05, 2018 8:20 pm
Qua Set 05, 2018 6:37 am
Qua Set 05, 2018 12:13 am
Ter Set 04, 2018 9:35 pm
Ter Set 04, 2018 7:07 am
Seg Set 03, 2018 7:35 pm
Seg Set 03, 2018 6:12 pm
Seg Set 03, 2018 6:04 pm
Seg Set 03, 2018 8:16 am
Dom Set 02, 2018 11:15 pm
Dom Set 02, 2018 11:12 pm
Dom Set 02, 2018 11:05 pm
Dom Set 02, 2018 8:06 pm
Dom Set 02, 2018 12:19 am
Sab Set 01, 2018 11:51 pm
Sab Set 01, 2018 6:19 pm
Sab Set 01, 2018 9:33 am
MRX
artplayer
Jmspp
Callyde Jr
francisco barroso
diegopds
artplayer
MayLeone
Callyde Jr
NKKF
DuViDoSo
francisco barroso
Daniel Dória
francisco barroso
Daniel Dória
Caius
marciosilva
MarcosSchultz
luiz12345
JohnRambo
Callyde Jr
rafaelllsd
francisco barroso
natanael.olimpio
speedluk
PedroSilva
Callyde Jr
Callyde Jr
Ezequiel286
dstaroski
dstaroski
dstaroski
Eduardoro39
SuperGamer
JuR
MarcosSchultz
MeverPlays
MeverPlays
MarcosSchultz
MarcosSchultz
dstaroski
dstaroski
dstaroski
JohnRambo
fecirineu
igorobm
igorobm
igorobm
Eduardoro39
NKKF
Callyde Jr
MarcosSchultz
MarcosSchultz
MarcosSchultz
nicolasfive
natanael.olimpio
natanael.olimpio
INKnight
FuncaoFF
dstaroski
QueriaStarMorto
NyanHeavyBR
Callyde Jr
FabioBRPA
MarcosSchultz
NKKF
niao
MarcosSchultz
MarcosSchultz
MarcosSchultz
Flávio
Joab Artes Gráficas
vitorhugo
Callyde Jr
Callyde Jr
fecirineu
FeLotus
MarcosSchultz
Callyde Jr
fecirineu
lelouchsdky
Callyde Jr
gurgelg752
Tiago95
FelipeSouza11
ruanzikaad
joz
WesFarias
TassoCervi
Magnatah
junkflash30
MarcosSchultz
MarcosSchultz
MarcosSchultz
natanael.olimpio
EmperorGO
hhsantos
Dom3000
QueriaStarMorto

[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 : 2539
REPUTAÇÃO : 485
Idade : 19
Áreas de atuação : Unity;
Programação;
Modelagem;
Criação de cenários;
Sonorização;

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 : 733
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 : 624
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 : 2764
REPUTAÇÃO : 412
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 : 624
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 : 624
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 : 60883
REPUTAÇÃO : 2014
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 : 623
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 : 893
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 : 1826
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 : 60883
REPUTAÇÃO : 2014
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 : 1280
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 : 638
REPUTAÇÃO : 12
Idade : 19
Á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 : 930
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 : 3567
REPUTAÇÃO : 931
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 : 930
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 : 930
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 : 176
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 : 60883
REPUTAÇÃO : 2014
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 : 176
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 : 60883
REPUTAÇÃO : 2014
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 : 176
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 : 89
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 : 60883
REPUTAÇÃO : 2014
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