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:
Como Faz pra barra de vida aparecer de uma cena pra outra?
Salvar e carregar dados json player pref
Problema com cenário infinito ou algum tipo de bug na Unity?
Blander ao juntar algumas partes ficam mais escuro
Problema com Esqueleto do personagem
{Possível Projeto para Unity} Buscando membros para formar uma Equipe...
[TUTORIAL] Como spawnar inimigos [Tutorial simples]
Não consigo fazer o box collider descer junto com o personagem.
iniciar jogo com uma cena desativada e ativá-la ao colidir com bloco desativando as outras
BUG UNITY 3D ROSA A SCENE E GAME
Sistema de Grau Realista - Jogo de Moto
(Dúvida) Encontrar o objeto mais próximo partindo do ponto inicial ao final.
Programação Unity android 2D
(UNITY) Erro ao compilar a Build Android
Erro na sincronização dos player no Photon
[TUTORIAL] Barra de vida usando a UI da Unity(Slider)
[Projeto] Line Battle
Procuro Equipe Para Criação de Jogo [PAGO]
[TUTORIAL] Desbloqueio e Escolha de Personagens.
[RESOLVIDO] Problema com o navmesh agent
[RESOLVIDO] Registro cadrastando uma vez?
Vaga de modelador 3D, com remuneração...
Problemas com Colisores
[____ENQUETE____] Eleições para presidente 2018 (2º turno)
Como criar Atlas de textura com modelos exportados do Sketchup?
Unity - Sistema de Pagamento
[RESOLVIDO] iniciar áudio ao passar por uma área da cena
[RESOLVIDO] como envia asset para asset store
[TUTORIAL] Mover personagem com Touch, no estilo SUBWAY SURFERS
codigo não deleta prefab e não respeita o if
[TUTORIAL] Filtros de áudio para AudioListner (Low pass filter, High pass filter, etc)
[____CICLO DE TRABALHO DA UNITY____]
Meu jogo não está abrindo em outro PC
[TUTORIAL] DANO POR QUEDA e BARRA DE VIDA CONTÍNUA no mesmo script
[TUTORIAL] Sistema de vida,morte,dano
Discord para desenvolvimento de jogos
FAB in WWII (Novo jogo na Play Storee é Free :D)
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
[TUTORIAL] Sistema de PORTAS e CHAVES
Criar uma Array ou List com as resoluções suportadas
Alguem traz esse tutorial pro forum?
Realistic fps prefab tenho esses erros ao tentar colocar um script de entrar sair do carro
[RESOLVIDO] Alguem pode me ajudar? tenho esse erro aqui em um script
[RESOLVIDO] Personagem 2d batendo na borda e voando.
[RESOLVIDO] Não consigo usar o Sphere collider.
[RESOLVIDO] Como usa o UI.Text do unity?
Como criar botão de nova tentativa
[RESOLVIDO] Duvida em Jogo de tiro 2D
[TUTORIAL] Barra de VIDA / HP contínua
[RESOLVIDO] duvida com PlayerPrefs
Iniciar animação em determinado frame
Sistema De Troca De Armas 2D
[TUTORIAL] Script de arma completo! [FREE]
[TUTORIAL] Ordenar valores de uma array[] em ordem CRESCENTE OU DECRESCENTE
Meu jogo de runner em primeira pessoa !
[RESOLVIDO] Timer pra mudar de cena na unity 2018
Atualizar Build
[TUTORIAL] 42 ÓTIMAS DICAS DE OTIMIZAÇÃO PARA JOGOS MOBILE (Android)
Como usar Vector3.Angles para detectar que algo está na frente de outro objeto?
[TUTORIAL] Como fazer porta malas do carro abrir atravez de um botão?
Script nao funciona
Como desativar scripts em objetos distantes
[RESOLVIDO] Bug Da Unity ?
[AULA] HTML - Aula 1: Introdução
Raycast
[TUTORIAL]"Morte" do personagem (Unity 5.3 ou Superior)
Problema com a unity ads
como eu faço para a camera orbitar um objeto atraves de um joystick?????
[PROJETO MOBILE] Defeat the Illuminatis
XML, suporte e utilização.
Arrastar objetos em plano 2D (ArrastarT).
[TUTORIAL] Sistema de fome, sede, barra de vida, barra de estamina, itens e dano por queda
Participe da Game Jam - Jaaj do canal Amdré Young!
Criar sistema de arrastar e soltar objetos em determinado lugar
AWM Champions I
[RESOLVIDO] Como verificar se o objeto é diferente de null
COMO FAÇO PARA FAZER UM SISTEMA DE SKIN PARA ANDROID ESTILO HEAVY BUS, PROTON BUS, ETC
[TUTORIAL] Snake com Unity + C#
Sobre Som (Ouvir som do sistema , duas caixas de som ... )
Configurar NPCs
[RESOLVIDO] Script Carta
[TUTORIAL] Texto Legenda Character Por Character Para Uso Básico
Ajuda com script movimento por Grid Tile no Navmesh
[Devlog] Lost in the world 05/10
[___COMO UTILIZAR O FÓRUM___] Principais botões e suas funções
inimigo nao persegue player
[RESOLVIDO] Build setting não entra
[RESOLVIDO] Player Sair Da animaçao
[RESOLVIDO] Erro colider
Dúvida sobre Resolução
[____APOIE O FÓRUM E O CANAL E GANHE RECOMPENSAS____]
[____ENQUETE____] Eleições para presidente 2018
[Plugin dll] DigData basico save data Para Unity
Conquistas Steam? Adicionar
Montando equipe! [Game survival]
[TUTORIAL] Banco de dados || MySQL
[RESOLVIDO] Rotação com Mouse Vídeo 360
Problema com a velocidade do objeto
ANIMAÇÃO INIMIGO AI
Hoje à(s) 8:00 am
Hoje à(s) 2:30 am
Hoje à(s) 12:04 am
Ontem à(s) 11:45 pm
Ontem à(s) 11:17 pm
Ontem à(s) 10:14 pm
Ontem à(s) 9:49 pm
Ontem à(s) 8:32 pm
Ontem à(s) 5:21 pm
Ontem à(s) 5:18 pm
Ontem à(s) 5:16 pm
Ontem à(s) 5:13 pm
Ontem à(s) 5:13 pm
Ontem à(s) 5:10 pm
Ontem à(s) 4:35 pm
Ontem à(s) 3:13 pm
Ontem à(s) 7:28 am
Ter Out 16, 2018 9:56 pm
Ter Out 16, 2018 3:34 pm
Ter Out 16, 2018 12:41 pm
Ter Out 16, 2018 11:48 am
Seg Out 15, 2018 5:34 pm
Seg Out 15, 2018 5:03 pm
Seg Out 15, 2018 2:46 pm
Seg Out 15, 2018 1:19 pm
Seg Out 15, 2018 12:56 pm
Seg Out 15, 2018 11:34 am
Seg Out 15, 2018 6:17 am
Seg Out 15, 2018 12:30 am
Seg Out 15, 2018 12:18 am
Dom Out 14, 2018 12:52 am
Sab Out 13, 2018 9:08 pm
Sab Out 13, 2018 5:24 pm
Sab Out 13, 2018 4:00 pm
Sex Out 12, 2018 10:42 pm
Sex Out 12, 2018 6:00 pm
Sex Out 12, 2018 2:56 pm
Sex Out 12, 2018 2:55 pm
Sex Out 12, 2018 2:42 pm
Qui Out 11, 2018 8:59 pm
Qui Out 11, 2018 8:32 pm
Qui Out 11, 2018 3:09 pm
Qui Out 11, 2018 2:32 pm
Qui Out 11, 2018 12:15 pm
Qui Out 11, 2018 11:35 am
Qui Out 11, 2018 10:50 am
Qui Out 11, 2018 8:24 am
Qua Out 10, 2018 11:31 pm
Qua Out 10, 2018 11:11 pm
Qua Out 10, 2018 10:43 pm
Qua Out 10, 2018 8:22 pm
Qua Out 10, 2018 4:53 pm
Qua Out 10, 2018 4:44 pm
Qua Out 10, 2018 3:48 pm
Qua Out 10, 2018 12:40 pm
Ter Out 09, 2018 9:51 pm
Ter Out 09, 2018 8:16 pm
Ter Out 09, 2018 8:16 pm
Ter Out 09, 2018 8:10 pm
Ter Out 09, 2018 8:09 pm
Ter Out 09, 2018 7:38 pm
Ter Out 09, 2018 2:55 pm
Seg Out 08, 2018 6:13 pm
Seg Out 08, 2018 4:40 pm
Seg Out 08, 2018 2:39 pm
Seg Out 08, 2018 12:52 pm
Seg Out 08, 2018 12:16 pm
Seg Out 08, 2018 10:33 am
Seg Out 08, 2018 9:22 am
Dom Out 07, 2018 1:59 pm
Dom Out 07, 2018 11:53 am
Dom Out 07, 2018 10:53 am
Sab Out 06, 2018 11:14 pm
Sab Out 06, 2018 10:55 pm
Sab Out 06, 2018 8:50 pm
Sab Out 06, 2018 8:41 pm
Sab Out 06, 2018 2:21 pm
Sab Out 06, 2018 1:33 pm
Sab Out 06, 2018 2:04 am
Sex Out 05, 2018 8:22 pm
Sex Out 05, 2018 7:39 pm
Sex Out 05, 2018 6:35 pm
Sex Out 05, 2018 11:27 am
Sex Out 05, 2018 11:22 am
Sex Out 05, 2018 9:35 am
Sex Out 05, 2018 12:53 am
Qui Out 04, 2018 11:40 pm
Qui Out 04, 2018 10:43 pm
Qui Out 04, 2018 6:23 pm
Qui Out 04, 2018 3:36 pm
Qui Out 04, 2018 3:12 pm
Qui Out 04, 2018 3:11 pm
Qui Out 04, 2018 3:11 pm
Qui Out 04, 2018 3:07 pm
Qui Out 04, 2018 12:45 am
Qua Out 03, 2018 10:50 pm
Qua Out 03, 2018 7:15 pm
Qua Out 03, 2018 4:18 pm
Qua Out 03, 2018 3:16 pm
francisco barroso
JuR
MarcosSchultz
DominicDK
DominicDK
NoctisLucis
francisco barroso
MayLeone
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
francisco barroso
hao3726
dstaroski
dstaroski
MRX
ismarspn
Jmspp
Callyde Jr
igorobm
conceptfac
Dom3000
Isabela
Callyde Jr
Daniel Dória
diegopds
MarcosSchultz
igorobm
MarcosSchultz
MarcosSchultz
Flávio
francisco barroso
Callyde Jr
SuperGamer
SoullSec
SoullSec
SoullSec
Flávio
francisco barroso
Samuelostgamer
Samuelostgamer
gurgelg752
luansantos
guimaraf
theus.mors
TecnoGames
francisco barroso
Eduardoro39
QueriaStarMorto
QueriaStarMorto
mecjo
NyanHeavyBR
CaioItz
RodriGO3477
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
FelipeSouza11
FelipeSouza11
QueriaStarMorto
Tegh
Jmspp
Callyde Jr
Jmspp
Gabryellx007
dstaroski
Tegh
Tegh
SuperGamer
Luizdanhp
MarcosSchultz
TioUV
QueriaStarMorto
KAYKETHEO27
NKKF
MarcosSchultz
Callyde Jr
francisco barroso
FelipeSouza11
Nowsfeky
Mateus2583
FelipeSouza11
Callyde Jr
Daniel Dória
marcosdanielnerydasilva
francisco barroso
NKKF
dstaroski
dstaroski
dstaroski
dstaroski
PedroSilva
igorobm
natanael.olimpio
Socates
francisco barroso

ANIMAÇÃO INIMIGO AI

Ir em baixo

DÚVIDA ANIMAÇÃO INIMIGO AI

Mensagem por bertarele em Sab Jun 09, 2018 1:02 am

Boa noite galera, estou com uma duvida e preciso muito de ajuda...

Recentemente vi um video do Marcos que ele coloca um AI inimigo que segue o personagem e ataca. Coloquei as linhas de código, porem meu inimigo  não ataca, apenas anda... 

Outra duvida é a seguinte, baixei um 3D na asset store de um humanoide, e estou tentando colocar uma serra elétrica e uma mascara nele, porem não consigo de jeito nenhum, a serra elétrica e a mascara não acompanham a animação... tem algum jeito de fazer com que elas acompanhem? mas da forma certa com o personagem segurando ela na mão ?

RESUMINDO: eu gostaria de um comando em que o inimigo andasse aleatoriamente pelo mapa e quando me visse, viesse correndo atras de mim para me atacar com a serra elétrica. O boneco 3D que eu baixei é esse 

"Modern Zombie FREE"

estou tentando colocar uma mascara nele e uma serra elétrica, mas não consigo...


Se alguém puder me ajudar por favor !

bertarele
Membro
Membro

PONTOS : 638
REPUTAÇÃO : 17
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: ANIMAÇÃO INIMIGO AI

Mensagem por JohnRambo em Sab Jun 09, 2018 8:33 am

Saudações!

Vamos começar pela primeira duvida...

Poderia nos mostrar como está anexado as variáveis aí no seu inspector? Se puder mande um print. Muitas vezes esses erros são devidos a variáveis que não tem nada linkado ou foram linkadas com os objetos errados
avatar
JohnRambo
Moderador

Masculino PONTOS : 2572
REPUTAÇÃO : 489
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

DÚVIDA Re: ANIMAÇÃO INIMIGO AI

Mensagem por Dom3000 em Sab Jun 09, 2018 9:18 am

Olá a sua duvida:1-estou tentando colocar uma mascara nele e uma serra elétrica, mas não consigo... 
R: é muito simples de resolver vc deve colocar a mascara no osso da cabeça este osso é responsavel por movel a mesh da cabeça, vc deve achar ele, e colocar a mascara dentro desse osso, e o mesmo da serra eletrica mas nesse caso vc deve colocar no osso da mão.




2- é complicado pakas velho, sugiro que vc se preocupe com outras coisas antes disso, pois a parte de ai envolve programação de peso, não é algo para iniciantes, faça primeiro outras coisas do seu game como o controle do personagem e tal abraço
avatar
Dom3000
Programador

Masculino PONTOS : 2267
REPUTAÇÃO : 209
Idade : 22
Áreas de atuação : canal https://www.youtube.com/watch?v=yvmQEJUfbhQ
Page: https://www.facebook.com/BatlesofWorlds/
Ble
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: ANIMAÇÃO INIMIGO AI

Mensagem por bertarele em Sab Jun 09, 2018 10:35 pm

Primeiro, eu crio uma capsula chamada " Inimigo " ai coloco uma NAVMESHAGENT nela e esse script...

using UnityEngine;
using System.Collections;


public class INTELIGENCIA2 : MonoBehaviour { 
public Transform Player;
private UnityEngine.AI.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;

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 && 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;



http://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;

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;

BPerseguir = false;
BAtacar = false;

naveMesh.speed = 0;
transform.LookAt (Player);
}
void Perseguir(){
BPassear = false;
BOlhar = false;

BAtacar = false;

naveMesh.acceleration = 8;
naveMesh.speed = VelocidadeDePerseguicao;
naveMesh.destination = Player.position;
}
void Atacar (){
BPassear = false;
BOlhar = false;
BPerseguir = false;


atacandoAlgo = true;
}
}




depois disso eu coloco meu monstro dentro dela, e coloco esse script nele

using UnityEngine;
using System.Collections;

[RequireComponent(typeof(Animator))]
[RequireComponent(typeof(AudioSource))]
public class AninINTELIGENCIA : MonoBehaviour {
public INTELIGENCIA2 Navgador;
public AudioClip Atacar, Olhar, Passear, Perseguir;
public bool AldioTocando;
public float AldioDuracao;
// Use this for initialization
void Start () {

}

// Update is called once per frame
void Update () {

if (AldioTocando == true) {/// AldioTocando ------------------------------------------------------
AldioDuracao += Time.deltaTime;

if (AldioDuracao >= GetComponent<AudioSource> ().clip.length ) {
AldioTocando = false;
AldioDuracao = 0;
}
}//----------------------------------------------------------------------------------------------------

if (Navgador.BAtacar == true) {/// Atacar ------------------------------------------------------
GetComponent<Animator> ().SetBool ("Atacar", true);
GetComponent<AudioSource> ().clip = Atacar;
GetComponent<AudioSource> ().PlayOneShot (Atacar);

} else {
GetComponent<Animator> ().SetBool ("Atacar", false);
}//----------------------------------------------------------------------------------------------------


if (Navgador.BOlhar == true) {/// Olhar ------------------------------------------------------
GetComponent<Animator> ().SetBool ("Olhar", true);

if (GetComponent<AudioSource> ().clip != Olhar) {
AldioTocando = false;
AldioDuracao = 0;

Debug.Log ("Aldio Trocado");
}

if (AldioTocando == false) {
GetComponent<AudioSource> ().clip = Olhar;
GetComponent<AudioSource> ().PlayOneShot (Olhar);
AldioTocando = true;
}

} else {
GetComponent<Animator> ().SetBool ("Olhar", false);
}//----------------------------------------------------------------------------------------------------


if (Navgador.BPassear == true) {/// Passear ------------------------------------------------------
GetComponent<Animator> ().SetBool ("Passear", true);

if (GetComponent<AudioSource> ().clip != Passear) {
AldioTocando = false;
AldioDuracao = 0;
Debug.Log ("Aldio Trocado");
}

if (AldioTocando == false) {
GetComponent<AudioSource> ().clip = Passear;
GetComponent<AudioSource> ().PlayOneShot (Passear);
AldioTocando = true;
}

} else {
GetComponent<Animator> ().SetBool ("Passear", false);
}//----------------------------------------------------------------------------------------------------

if (Navgador.BPerseguir == true) { /// perseguir ------------------------------------------------------
GetComponent<Animator> ().SetBool ("Perseguir", true);

if (GetComponent<AudioSource> ().clip != Perseguir) {
AldioTocando = false;
AldioDuracao = 0;
Debug.Log ("Aldio Trocado");
}

if (AldioTocando == false) {
GetComponent<AudioSource> ().clip = Perseguir;
GetComponent<AudioSource> ().PlayOneShot (Perseguir);
AldioTocando = true;
}

} else {
GetComponent<Animator> ().SetBool ("Perseguir", false);
}//----------------------------------------------------------------------------------------------------


}
}

bertarele
Membro
Membro

PONTOS : 638
REPUTAÇÃO : 17
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: ANIMAÇÃO INIMIGO AI

Mensagem por bertarele em Dom Jun 10, 2018 1:24 am

@bertarele escreveu:Primeiro, eu crio uma capsula chamada " Inimigo " ai coloco uma NAVMESHAGENT nela e esse script...

using UnityEngine;
using System.Collections;


public class INTELIGENCIA2 : MonoBehaviour { 
public Transform Player;
private UnityEngine.AI.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;

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 && 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;



http://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;

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;

BPerseguir = false;
BAtacar = false;

naveMesh.speed = 0;
transform.LookAt (Player);
}
void Perseguir(){
BPassear = false;
BOlhar = false;

BAtacar = false;

naveMesh.acceleration = 8;
naveMesh.speed = VelocidadeDePerseguicao;
naveMesh.destination = Player.position;
}
void Atacar (){
BPassear = false;
BOlhar = false;
BPerseguir = false;


atacandoAlgo = true;
}
}




depois disso eu coloco meu monstro dentro dela, e coloco esse script nele

using UnityEngine;
using System.Collections;

[RequireComponent(typeof(Animator))]
[RequireComponent(typeof(AudioSource))]
public class AninINTELIGENCIA : MonoBehaviour {
public INTELIGENCIA2 Navgador;
public AudioClip Atacar, Olhar, Passear, Perseguir;
public bool AldioTocando;
public float AldioDuracao;
// Use this for initialization
void Start () {

}

// Update is called once per frame
void Update () {

if (AldioTocando == true) {/// AldioTocando ------------------------------------------------------
AldioDuracao += Time.deltaTime;

if (AldioDuracao >= GetComponent<AudioSource> ().clip.length ) {
AldioTocando = false;
AldioDuracao = 0;
}
}//----------------------------------------------------------------------------------------------------

if (Navgador.BAtacar == true) {/// Atacar ------------------------------------------------------
GetComponent<Animator> ().SetBool ("Atacar", true);
GetComponent<AudioSource> ().clip = Atacar;
GetComponent<AudioSource> ().PlayOneShot (Atacar);

} else {
GetComponent<Animator> ().SetBool ("Atacar", false);
}//----------------------------------------------------------------------------------------------------


if (Navgador.BOlhar == true) {/// Olhar ------------------------------------------------------
GetComponent<Animator> ().SetBool ("Olhar", true);

if (GetComponent<AudioSource> ().clip != Olhar) {
AldioTocando = false;
AldioDuracao = 0;

Debug.Log ("Aldio Trocado");
}

if (AldioTocando == false) {
GetComponent<AudioSource> ().clip = Olhar;
GetComponent<AudioSource> ().PlayOneShot (Olhar);
AldioTocando = true;
}

} else {
GetComponent<Animator> ().SetBool ("Olhar", false);
}//----------------------------------------------------------------------------------------------------


if (Navgador.BPassear == true) {/// Passear ------------------------------------------------------
GetComponent<Animator> ().SetBool ("Passear", true);

if (GetComponent<AudioSource> ().clip != Passear) {
AldioTocando = false;
AldioDuracao = 0;
Debug.Log ("Aldio Trocado");
}

if (AldioTocando == false) {
GetComponent<AudioSource> ().clip = Passear;
GetComponent<AudioSource> ().PlayOneShot (Passear);
AldioTocando = true;
}

} else {
GetComponent<Animator> ().SetBool ("Passear", false);
}//----------------------------------------------------------------------------------------------------

if (Navgador.BPerseguir == true) { /// perseguir ------------------------------------------------------
GetComponent<Animator> ().SetBool ("Perseguir", true);

if (GetComponent<AudioSource> ().clip != Perseguir) {
AldioTocando = false;
AldioDuracao = 0;
Debug.Log ("Aldio Trocado");
}

if (AldioTocando == false) {
GetComponent<AudioSource> ().clip = Perseguir;
GetComponent<AudioSource> ().PlayOneShot (Perseguir);
AldioTocando = true;
}

} else {
GetComponent<Animator> ().SetBool ("Perseguir", false);
}//----------------------------------------------------------------------------------------------------


}
}
Galera, consegui resolver em relação ao inimigo seguir o player ! ele esta seguindo porem tem alguns errinhos que preciso da ajuda de vocês...

Seguinte:

1- independente do lugar que eu esteja, longe ou perto, ele segue... eu gostaria que ele seguisse apenas quando eu chegasse a uma determinada distancia.

2- Não estou conseguindo sincronizar a animação... são 4 tipos, ( Andando"inicial", Olhar, Perseguir e atacar ), ele apenas anda em direção ao player e quando chegar perto fica me rodando. Ele nao " Olha " nem "Persegue" e nem "Ataca"

vocês podem me ajudar por favor ! eu só preciso disso para terminar o jogo... Segue o Codigo...


using System.Collections;
using System.Collections.Generic;
using UnityEngine;


public class chase : MonoBehaviour {
public Transform player;
static Animator anim;


// Use this for initialization
void Start () {
anim = GetComponent<Animator> ();
}

// Update is called once per frame
void Update () {
Vector3 direction = player.position - this.transform.position;
float angle = Vector3.Angle(direction,this.transform.forward);
if (Vector3.Distance(player.position,this.transform.position) < 10 && angle < 30);
{
direction.y = 0;


this.transform.rotation = Quaternion.Slerp (this.transform.rotation,
Quaternion.LookRotation (direction), 0.1f);

anim.SetBool ("Passear", false);
if (direction.magnitude > 5) {
this.transform.Translate (0, 0, 0.5f);
anim.SetBool ("Perseguir", true);
anim.SetBool ("Atacar", false);
} else {
anim.SetBool ("Atacar", true);
anim.SetBool ("Perseguir", false);
}

}  {
anim.SetBool ("Passear", true);
    anim.SetBool ("Perseguir", false);
anim.SetBool ("Atacar", false);
}
}
}



Minha animator esta assim




                     Atacar

Passear                           Perseguir

                    Olhar


Todas ligadas umas nas outras, 


  1. Passear para atacar ( Atacar = verdadeiro ) 
  2. Atacar para passear ( Passear = Verdadeiro )
  3. Passear para olhar ( Olhar = verdadeiro )
  4. Olhar para passear ( Passear = verdadeiro )
  5. Passear para perseguir ( perseguir = verdadeiro )
  6. Perseguir para passear (passear = verdadeiro )
  7. Olhar para perseguir (perseguir = verdadeiro)
  8. Perseguir para olhar ( olhar = verdadeiro)
  9. Atacar para Perseguir ( Perseguir = verdadeiro )
  10. Perseguir para atacar ( atacar = verdadeiro)



Não sei se deu para entender... preciso muito de ajuda nessa parte, estou a uns 4 dias parado por conta disso... se alguém puder me ajudar ficarei grato ! Obrigado.

bertarele
Membro
Membro

PONTOS : 638
REPUTAÇÃO : 17
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: ANIMAÇÃO INIMIGO AI

Mensagem por Phph09 em Dom Jun 10, 2018 9:14 am

Código:
//1- Coloque os seus códigos sempre nessa caixa

Acredito que esteja faltando algumas transiçoes!
Qual é o problema?

avatar
Phph09
ProgramadorMaster

Masculino PONTOS : 1581
REPUTAÇÃO : 233
Idade : 13
Áreas de atuação :

Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: ANIMAÇÃO INIMIGO AI

Mensagem por bertarele em Dom Jun 10, 2018 7:18 pm

Então cara é que o código eu copiei e colei de uma programadora americana... na verdade eu não entendo muito sobre o código... precisaria de um script para dar um jeito nisso...

bertarele
Membro
Membro

PONTOS : 638
REPUTAÇÃO : 17
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: ANIMAÇÃO INIMIGO AI

Mensagem por francisco barroso em Qua Out 03, 2018 3:16 pm

Tudo verdadeiro? acho q tem umas que sao falsa e no meu caso o inimigo nao ta olhando e nem perseguindo só passeando e atacando :/
avatar
francisco barroso
Avançado
Avançado

Masculino PONTOS : 343
REPUTAÇÃO : 21
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Voltar ao Topo

- Tópicos similares

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