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:
Criando uma equipe
Como patentear um jogo? ou seja, o jogo ter um copyright meu?
Ajuda com um inventario
[TUTORIAL] Como fazer um ponteiro de VELOCIDADE, RPM, etc na Unity
Animação no shaders (animação giratório)
Problema Compilando para Android no Unity
Script de arma completo! [FREE]
[TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5
[RESOLVIDO] Como referenciar objetos por nome?
[Formação de Equipe] Battles of Worlds
Sobre Som (Ouvir som do sistema , duas caixas de som ... )
Animator não funciona
[___COMO UTILIZAR O FÓRUM___] Principais botões e suas funções
[____ADMINISTRAÇÃO____] PRECISO DE AJUDA [DICA PARA SER AJUDADO]
[____APOIE O FÓRUM E O CANAL E GANHE RECOMPENSAS____]
Como posso puxar o Osso do player pelo touch?
State Machine Behaviours
tenho alguns erros nos scripts do mfps mas nao consigo resolver....
[RESOLVIDO] Recarregar magia ESTILO MOBA
Compilando pra android
[PROJETO MOBILE] Defeat the Illuminatis
Dúvida sobre Client/Server
Alguma forma de visualizar o desempenho do processador em tempo real?
[TUTORIAL] Demostrando e aplicando minha lógica sobre CheckPoints
usando design patterns na unity
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
Unity - Ajuda em Texto Animado
[ NONAME ] Procura de pessoas interessadas
PROCURA-SE DESIGNER 2D e ROTEIRISTA PARA PROJETO EM ANDAMENTO!
Quando aperto o PLAY não funciona os comandos do script.
[RESOLVIDO] Erro com monodevelop/visual studio code
[RESOLVIDO] Limitar Uso da Estamina
Enhance - SDK Integration Elimination!
[Divulgação] Projeto The World of Child
CHECKPOINT PONTO DE SALVAMENTO
[RESOLVIDO] Por que o NavMesh não está gerando um destino?
[TUTORIAL] Third Person Shooter
[RESOLVIDO] Aumentar um valor quando próximo do HitPoint
Erro No Unity
Bora entrar no Discord.. Tirando Duvidas Online..
Procuro Programador para jogo baseado em Harvest Moon - Unity (3D)
[RESOLVIDO] Unity - Erro ao Mudar de Resolução
[TUTORIAL] Script simples para CAMA ELÁSTICA
[RESOLVIDO] Cama elastica e ventuinha que lança pra cima
[RESOLVIDO] Unity não está aceitando imagens
Ajuda com orientação de rotação de objeto
Recompensa diária
Herança Classes
Como Criar uma nova classe com as mesmas variaveis?
Como recriar esta fisica?
[RESOLVIDO] problema movimentação horinzontal
Exclusão de arquivos desnecessários da Photon Network (PUN)
luz
Como desativar o componente IMAGE e ativar automaticamente depois de certo tempo
Alguem sabe como resolver esse problema? AI nao procurar ela mesma
[TUTORIAL] Barra de VIDA / HP contínua
Compilação pra android unity 3d
[TUTORIAL] Mover e rotacionar objeto em relação a posição do MOUSE
Error depois de copilar para Android?
[TUTORIAL] 42 ÓTIMAS DICAS DE OTIMIZAÇÃO PARA JOGOS MOBILE (Android)
Inputfield 3D: alguém sabe como fazer? algum tutorial? ideia pra começar?
Rotacionar Y-axis Atraves
AnimatorOverrideController
Ajuda com Script para IA
Jogo Adaptativo a Tamanho de Telas
Curso Básico de Photoshop
[RESOLVIDO] Pra que serve o F?
[Projeto] Xuel The glory | Testem e avaliem o meu jogo medieval :3
Encriptar player prefs
COMPETIÇÃO - Melhor Jogo Indie
Ajuda em Votação para o GameJAM+
Remover limite de VSync no Android
Volante GameObject girar junto com O grafico UI Android
[TUTORIAL] Inserindo animações com Mixamo
[RESOLVIDO] Problema de renderização
[ Formação de Equipe ] Para Desenvolvimento de Jogo Mobile/PC
Streering Behaviors C#
[TUTORIAL] Salvar SCORE e substituir caso faça mais pontos.
Participe da Game Jam - Jaaj do canal Amdré Young!
Como criar um ranking online na Unity usando a PlayFab e o Facebook?
Armário Escolar (School Locker) by RafaelSquid1
Duas duvidas sobre o bake no blender
[RESOLVIDO] Pointer Influence
[RESOLVIDO] Saber o lado de um círculo toca em um objeto.
Animar collider
[TUTORIAL] Aprenda C# - Unity 3D
[TUTORIAL] AI Enemy ( Jogos de terror )
Troca de personagem em jogo 2d
Ficou legal? Minha primeira modelagem
Alguém Afim de Jogar e testar Survival Online? PC e Mobail...
[RESOLVIDO] Como fazer uma textura com elevações?
Como criar sombra em objeto transparente?
Sistema de Entidades e Componentes(ECS)
Gostaria que opinassem sobre esse cenario que fiz
Como salvar objetos que tenham uma Tag especifica (save/load)
Care Box - Disponível na Play Store
Como utilizar a Unity em equipe
Problema para atualizar App na Apple Store Itunes Connect
Command 888
Hoje à(s) 8:53 am
Hoje à(s) 8:25 am
Hoje à(s) 2:06 am
Hoje à(s) 2:06 am
Hoje à(s) 2:02 am
Hoje à(s) 1:48 am
Ontem à(s) 8:27 pm
Ontem à(s) 7:31 pm
Ontem à(s) 5:05 pm
Ontem à(s) 3:33 pm
Ontem à(s) 2:02 pm
Ontem à(s) 10:06 am
Ontem à(s) 8:45 am
Ontem à(s) 8:45 am
Ontem à(s) 8:45 am
Ontem à(s) 8:41 am
Ontem à(s) 12:21 am
Sab Ago 18, 2018 6:43 pm
Sab Ago 18, 2018 6:28 pm
Sab Ago 18, 2018 2:55 pm
Sab Ago 18, 2018 9:54 am
Sab Ago 18, 2018 6:48 am
Sab Ago 18, 2018 1:50 am
Sex Ago 17, 2018 8:36 pm
Sex Ago 17, 2018 6:40 pm
Sex Ago 17, 2018 5:28 pm
Sex Ago 17, 2018 4:26 pm
Sex Ago 17, 2018 9:16 am
Sex Ago 17, 2018 9:13 am
Sex Ago 17, 2018 6:15 am
Qui Ago 16, 2018 7:03 pm
Qui Ago 16, 2018 4:49 pm
Qui Ago 16, 2018 12:20 pm
Qui Ago 16, 2018 6:12 am
Qua Ago 15, 2018 7:30 pm
Qua Ago 15, 2018 3:30 pm
Qua Ago 15, 2018 3:11 pm
Qua Ago 15, 2018 2:59 pm
Qua Ago 15, 2018 1:32 pm
Qua Ago 15, 2018 12:54 pm
Ter Ago 14, 2018 8:08 pm
Ter Ago 14, 2018 3:15 pm
Seg Ago 13, 2018 9:46 pm
Seg Ago 13, 2018 8:57 pm
Seg Ago 13, 2018 4:52 pm
Seg Ago 13, 2018 10:09 am
Seg Ago 13, 2018 9:17 am
Seg Ago 13, 2018 9:05 am
Dom Ago 12, 2018 10:53 pm
Dom Ago 12, 2018 4:43 pm
Dom Ago 12, 2018 4:15 pm
Dom Ago 12, 2018 3:47 pm
Dom Ago 12, 2018 3:07 pm
Sab Ago 11, 2018 4:02 pm
Sab Ago 11, 2018 11:13 am
Sex Ago 10, 2018 7:37 pm
Sex Ago 10, 2018 12:00 pm
Qui Ago 09, 2018 3:52 pm
Qui Ago 09, 2018 12:52 pm
Qui Ago 09, 2018 1:21 am
Qui Ago 09, 2018 1:17 am
Qui Ago 09, 2018 1:08 am
Qua Ago 08, 2018 11:57 pm
Qua Ago 08, 2018 10:59 pm
Qua Ago 08, 2018 8:17 pm
Qua Ago 08, 2018 7:35 pm
Qua Ago 08, 2018 6:00 pm
Qua Ago 08, 2018 3:14 pm
Qua Ago 08, 2018 11:54 am
Ter Ago 07, 2018 11:34 pm
Ter Ago 07, 2018 9:55 pm
Ter Ago 07, 2018 7:28 pm
Ter Ago 07, 2018 7:19 pm
Ter Ago 07, 2018 6:58 pm
Ter Ago 07, 2018 9:57 am
Ter Ago 07, 2018 1:20 am
Seg Ago 06, 2018 7:36 pm
Seg Ago 06, 2018 7:29 pm
Dom Ago 05, 2018 11:59 pm
Dom Ago 05, 2018 1:29 pm
Dom Ago 05, 2018 9:34 am
Sab Ago 04, 2018 3:09 pm
Sab Ago 04, 2018 11:47 am
Sab Ago 04, 2018 10:59 am
Sab Ago 04, 2018 9:23 am
Sab Ago 04, 2018 12:43 am
Sex Ago 03, 2018 11:43 pm
Sex Ago 03, 2018 11:38 pm
Sex Ago 03, 2018 10:21 pm
Sex Ago 03, 2018 10:14 pm
Sex Ago 03, 2018 8:37 pm
Sex Ago 03, 2018 5:26 pm
Sex Ago 03, 2018 4:41 pm
Sex Ago 03, 2018 12:35 pm
Sex Ago 03, 2018 12:24 pm
Qui Ago 02, 2018 10:33 pm
Qui Ago 02, 2018 8:31 pm
Qui Ago 02, 2018 8:10 pm
Qui Ago 02, 2018 5:35 pm
Brunotrinkss
dstaroski
Tiago95
KAYKETHEO27
NicoMay
Tiago95
Badstane
osiasbezerra
mafipt
mafipt
lesgoy
Feromark2013
dstaroski
dstaroski
dstaroski
dstaroski
QueriaStarMorto
Samuelostgamer
srhuculak
niao
dstaroski
mafipt
MarcosSchultz
NotoriousDev
brunocvz
Phph09
NotoriousDev
Brunotrinkss
Brunotrinkss
NotoriousDev
Zack2
srhuculak
RozekEnhance
jhobert77
NotoriousDev
loganout
Phph09
NotoriousDev
NotoriousDev
loganout
NKKF
Magnatah
FelipeSouza11
paulo.costa0194
alisonzinhod
dstaroski
dstaroski
dstaroski
luKkaSs
dazentt55
NotoriousDev
NotoriousDev
diegopds
Dom3000
Dom3000
Badstane
Callyde Jr
Unidade3d5
Callyde Jr
MarcosSchultz
MarcosSchultz
MarcosSchultz
Madson
Unidade3d5
Magnatah
dstaroski
lesgoy
zeca urubu
Ezequiel286
Gray_14
C3RB3RUS
NKKF
Gabryellx007
Phph09
sneffetsd
lucas85235
MarcosSchultz
MarcosSchultz
QueriaStarMorto
Rayllander
Callyde Jr
TioUV
NKKF
NKKF
gurgelg752
MarcosSchultz
MarcosSchultz
MarcosSchultz
guimaraf
fecirineu
LucioHenrique890
lesgoy
MarcosSchultz
Callyde Jr
Edw223
RafaelSquid1
QueriaStarMorto
natanael.olimpio
Callyde Jr

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 : 579
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 : 2502
REPUTAÇÃO : 471
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 : 2202
REPUTAÇÃO : 208
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 : 579
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 : 579
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 : 1518
REPUTAÇÃO : 229
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 : 579
REPUTAÇÃO : 17
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