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 Very Happy
TÓPICOS RECENTES:
Tópico:
Postado em:
Postado por:
Button Facebook Mobile!
Copilar para android?
Detectar se uma variável mudou e a quanto tempo ela mudou
Como posso criar um inputfield alfabtical alguem sabe?
[____APOIE O FÓRUM E O CANAL E GANHE RECOMPENSAS____]
Duvida sobre script
ativar animação ao apertar botão (android)
Ai Enemy Inimigo Parando do nada
Duvida Extranhicima
gameobject transparente
[TUTORIAL] Tutorial Unity 3D Movimentação de Personagem com Botões UI
Menu de Construções estilo jogo "Banished"
Baixos Brasil - Jogo de Carro Brasileiro!
Instanciar
-[COMO IMPLEMENTO UMA ARRAY NESTE SCRIPT?]-
[RESOLVIDO] Inteligência Artificial (básica) - interação Rigidbody2D Collision
Sistema de Futebol(Chutar bola e carrega-la até o gol)
Jogo De Corrida Infinita (2D)[Mobile]
[TUTORIAL] Inimigo seguir e atacar Player ao encostar
Jogo crashando depois da build
[TUTORIAL] Adicionar força a um Rigidbody na direção onde o mouse está
Duvida com Script VIDA
Iniciar em Unity
Escolhendo cores com scroll "mouse"
[RESOLVIDO] Erro com Audio Source ???
Partindo Para Faculdade!
[DÚVIDA] COMO FAZER UM "TEXT" APARECER SÓ UMA VEZ QUANDO O GAME INICIAR?
Simple Touch Camera Script
Duvida sobre iluminação
Duplo personagem
Erro
Dúvida sobre Estado inicial
Jogo de Pesca (Física da Linha)
Water
chamare indice de uma List<> em outro script
[RESOLVIDO] ERRO SUN SHAFTS (script nao aparece)
Animações do Player. Como faço????
MAGIA SEGUIR ALVO COM TAG APOS SER INSTANCIADA
Props Animations Asset
Formação de equipe para talvez um jogo Unturned+Battlegrounds - Unity c#
[DÚVIDA] FAZER JOGO ESTILO O ARROW.IO
[RESOLVIDO] Opções no menu?
[RESOLVIDO] Alguém poderia me ajudar a diminuir esse script?
Como fazer para o personagem ao sairdas delimitações da tela apareca no lado oposto?
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
Ajuda com script pra box collider
Sistema de combate estilo Runescape
[Gerenciador de fase aleatório]
Criar Rastro no personagem 2D estilo castlevania symphony of the night.
Qual unity usar?
[____AJUDE A TORNAR ESTE ASSET DE ANDROID GRATUITO!____]
Mensagem aparecer somente uma Vez!
Unity Remote na Unity 2017!
Como fazer duas cameras aparecerem?
como fazer uma fisica desse jeito?
[TUTORIAL] Mostrar Data e Hora atual do Computador em um texto
[TUTORIAL] RECOIL OU ANIMAÇÃO DE TIRO
Boas ideias, histórias... nem tanto: quem quer um roteirista?
IEnumerator Unity 2017
Instanciar Objeto Dentro De Outro
Help me, Notas no jogo
Dúvida no blender
Dicas para criação de cenario de um jogo hack and slash estilo god of war
MidNight Cemetery - Adventure First Person
Analog Clocks
[TUTORIAL] Programação básica com C# na Unity 5: Métodos (Funções)
Curso Grátis de Desenvolvimento de Games para Android - Básico
Fighters for honor(Jogo da segunda guerra mundial)
Problemas com o esqueleto do Blender na Unity
[RESOLVIDO]Animação não funciona
[TUTORIAL] Gerar números aleatórios SEM REPETIR
bracos para jogo em primeira pessoa para usar como quiser
Urgente presciso de ajuda para recuperar um arquivo
[TUTORIAL] Card Game Super Simples Mythomania
Como saber em qual objeto um objeto esta filiado?
Formação De Equipe Pra Criar RPG
Meu Jogo em desenvolvimento
Sistema de Corrida!
[ENQUETE] Game para Mobile
Os Eixos nao aparecem na hora de animar
Duvida sobre mundo aberto na unity
Duvida Kit FPS
[DEVLOG] Projeto - Girl Blade (download Pré-Alpha)
[____REGRAS DO FÓRUM____]
{PROJETO} ✞ ΔŁØŇ€ ĦØŘŘØŘ ǤΔΜ€ ✞
Dúvida - como detectar uma colisão entre 2 OUTROS objetos
Sombras no unity?
Comando This Em Scripts
Wheel Collider e Box Collider no Carro
Efeito Distorção de imagem?
Como trabalhar com várias imagens para ter Realidade Aumentada com Vuforia
Jogos que você ja fez, e teve retorno
Como faço para mudar de cena ao finalizar o video?
Dicas sobre criação de ruas??
(DUVIDA)PlayerPrefs
PROJETO DE BUS
A.S TRUCK
FAB in WWII (Novo jogo na Play Storee é Free :D)
Monodevelop não reconhece scripts importantes! como resolvo?
Hoje à(s) 4:56 pm
Hoje à(s) 4:14 pm
Hoje à(s) 4:03 pm
Hoje à(s) 3:01 pm
Hoje à(s) 9:51 am
Hoje à(s) 9:38 am
Hoje à(s) 6:01 am
Hoje à(s) 12:04 am
Ontem à(s) 10:22 pm
Ontem à(s) 9:55 pm
Ontem à(s) 9:48 pm
Ontem à(s) 9:42 pm
Ontem à(s) 8:41 pm
Ontem à(s) 4:22 pm
Ontem à(s) 3:38 pm
Ontem à(s) 2:54 pm
Ontem à(s) 2:35 pm
Ontem à(s) 1:14 pm
Ontem à(s) 12:51 pm
Ontem à(s) 12:48 pm
Ontem à(s) 11:47 am
Ontem à(s) 11:09 am
Ontem à(s) 7:46 am
Qua Ago 16, 2017 10:19 pm
Qua Ago 16, 2017 9:55 pm
Qua Ago 16, 2017 9:10 pm
Qua Ago 16, 2017 9:03 pm
Qua Ago 16, 2017 8:01 pm
Qua Ago 16, 2017 1:17 pm
Qua Ago 16, 2017 11:49 am
Qua Ago 16, 2017 8:01 am
Ter Ago 15, 2017 7:29 pm
Ter Ago 15, 2017 5:06 pm
Ter Ago 15, 2017 5:06 pm
Ter Ago 15, 2017 1:58 pm
Ter Ago 15, 2017 1:47 pm
Ter Ago 15, 2017 11:52 am
Ter Ago 15, 2017 6:21 am
Ter Ago 15, 2017 6:10 am
Seg Ago 14, 2017 11:28 pm
Seg Ago 14, 2017 11:04 pm
Seg Ago 14, 2017 10:06 pm
Seg Ago 14, 2017 7:19 pm
Seg Ago 14, 2017 6:18 pm
Seg Ago 14, 2017 6:09 pm
Seg Ago 14, 2017 5:55 pm
Seg Ago 14, 2017 5:52 pm
Seg Ago 14, 2017 5:37 pm
Seg Ago 14, 2017 5:31 pm
Seg Ago 14, 2017 5:27 pm
Seg Ago 14, 2017 5:26 pm
Seg Ago 14, 2017 5:23 pm
Seg Ago 14, 2017 5:21 pm
Seg Ago 14, 2017 5:17 pm
Seg Ago 14, 2017 5:12 pm
Seg Ago 14, 2017 3:36 pm
Seg Ago 14, 2017 1:38 pm
Seg Ago 14, 2017 11:06 am
Seg Ago 14, 2017 9:46 am
Seg Ago 14, 2017 3:22 am
Seg Ago 14, 2017 1:06 am
Dom Ago 13, 2017 9:14 pm
Dom Ago 13, 2017 6:15 pm
Dom Ago 13, 2017 3:03 pm
Dom Ago 13, 2017 2:32 pm
Dom Ago 13, 2017 1:16 pm
Dom Ago 13, 2017 11:59 am
Dom Ago 13, 2017 11:17 am
Dom Ago 13, 2017 10:00 am
Sab Ago 12, 2017 10:17 pm
Sab Ago 12, 2017 8:21 pm
Sab Ago 12, 2017 6:18 pm
Sex Ago 11, 2017 11:45 pm
Sex Ago 11, 2017 11:12 pm
Sex Ago 11, 2017 11:04 pm
Sex Ago 11, 2017 10:58 pm
Sex Ago 11, 2017 9:51 pm
Sex Ago 11, 2017 7:44 pm
Sex Ago 11, 2017 7:37 pm
Sex Ago 11, 2017 8:49 am
Qui Ago 10, 2017 6:02 pm
Qui Ago 10, 2017 4:23 pm
Qui Ago 10, 2017 1:32 pm
Qua Ago 09, 2017 9:09 pm
Qua Ago 09, 2017 7:05 pm
Qua Ago 09, 2017 4:15 pm
Qua Ago 09, 2017 3:04 pm
Qua Ago 09, 2017 2:49 pm
Qua Ago 09, 2017 2:28 pm
Qua Ago 09, 2017 2:18 pm
Qua Ago 09, 2017 2:05 pm
Qua Ago 09, 2017 1:51 pm
Qua Ago 09, 2017 12:23 pm
Qua Ago 09, 2017 11:27 am
Qua Ago 09, 2017 11:20 am
Ter Ago 08, 2017 9:15 pm
Ter Ago 08, 2017 6:39 pm
Ter Ago 08, 2017 5:14 pm
Ter Ago 08, 2017 5:08 pm
Duarte
michelly
Dom3000
MiguelLuiz
dstaroski
dstaroski
zZAndersonZz
Jhin
Dom3000
juliano001
deikson
MasterWizzard
Duarte
Duarte
MrTFGamer1
MatheusNani
deikson
HeF Soft
getrudes12@gmail.com
BloodyBS
deikson
Bruno
dstaroski
SERGIOCS
Vinicius F.
Duarte
Gabriel César O
Henrique0102
Zecandy
Callyde Jr
dstaroski
ffabim
AndyShow
Phph09
MarcosSchultz
glauco
Bruno
Callyde Jr
Callyde Jr
Bruno11playerG
Gabriel César O
cody0033
Unidade3d5
Pancinha20
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MrTFGamer1
Gabriel César O
Phph09
Weverton Borges da Silva
MarckosPG
Vinicius F.
Psyvamp
joabr
Maloke
PauloFR
Bruno
zZAndersonZz
artplayer
Callyde Jr
Dettne
Zecandy
Phph09
Dom3000
Jhin
MiguelLuiz
xXGianlucksXx
ffabim
Callyde Jr
Callyde Jr
Phph09
tom ramber
Zecandy
Zecandy
Maloke
SeniorDarkness
joaoazevedo65
MarcosSchultz
Zecandy
MarcosSchultz
MarcosSchultz
MarcosSchultz
AndyShow
Callyde Jr
joabr
Zecandy
GabrielbelemXD
zZAndersonZz
Édipo
MarcosSchultz

(Ajuda) Inteligencia do inimigo

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

DÚVIDA (Ajuda) Inteligencia do inimigo

Mensagem por rafaelllsd em Dom Maio 01, 2016 2:40 am

Olá, estou aqui com uma duvida de um assunto complexo que é inteligencia artificial, estou fazendo um script bem simples para quando o player estiver perto o inimigo atira nele, mais caso ele não esteja ele vai no inimigo mais proximo, ou pelo menos isto que tentei repassar para o script. só que quando duplico o inimigo um segue normalmente as regras só que o outro fica parado, mas quando eu chego perto ele vai em mim, só que quando saio de perto ele para novamente e não segue o outro inimigo. no inimigo duplicado ele não recebe a distancia do outro.
Código:

   private GameObject Player, Inimigos;
   private NavMeshAgent naveMesh;
   public float distancia, distanciaInimigo;
   public bool Instancia, contar, playerPerto;
   public Rigidbody Pedra;
   public Transform posicao;
   private float tempo;
   void Start (){
      Instancia = true;
      contar = false;
      naveMesh = transform.GetComponent<NavMeshAgent> ();
      Player = GameObject.FindWithTag ("Player");
      Inimigos = GameObject.FindWithTag ("Inimigo");
      playerPerto = false;

   }
   void Update (){
      distancia = Vector3.Distance (Player.transform.position, transform.position);
      distanciaInimigo = Vector3.Distance (Inimigos.transform.position, transform.position);
      if (distancia <= 30) {
         naveMesh.destination = Player.transform.position;
         playerPerto = true;
      } else {
         playerPerto = false;
      }
      if (Instancia == true && distancia <= 30) {
         Instantiate (Pedra, posicao.position, transform.rotation);
         Instancia = false;
         contar = true;
      }
      if (contar == true) {
         tempo += Time.deltaTime;
      }
      if (tempo >= 2) {
         tempo = 0;
         Instancia = true;
      }
      if (distanciaInimigo >= 0 && playerPerto == false) {
         naveMesh.destination = Inimigos.transform.position;
      }
      if (Instancia == true && distanciaInimigo >= 0) {
         Instantiate (Pedra, posicao.position, transform.rotation);
         Instancia = false;
         contar = true;
      }
   }
}
nunca fiz algo parecido, então para mim é meio complicado.
avatar
rafaelllsd
ProgramadorMaster

Masculino PONTOS : 2029
REPUTAÇÃO : 305
Idade : 17
Áreas de atuação : Programação C#.
Modelagem Básica.
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: (Ajuda) Inteligencia do inimigo

Mensagem por weslleyFx em Dom Maio 01, 2016 1:16 pm

Fiz um script
caso não entenda diga que eu explico

Código:

using UnityEngine;
using System.Collections;

[RequireComponent(typeof(NavMeshAgent))]
public class EnemyBehaviour : MonoBehaviour
{

    private GameObject player = null;
    private NavMeshAgent navMesh;
    private bool canShoot;

    public float distanceToShoot;

   void Start ()
    {
        navMesh = GetComponent<NavMeshAgent>();
        player = GameObject.FindWithTag("Player");
   }

   void Update ()
    {

        if (canShoot)
        {
            Shoot();
            navMesh.stoppingDistance = distanceToShoot;
        }
        else
        {
            navMesh.SetDestination(player.transform.position);
        }

        if (DistacePlayer <= distanceToShoot)
        {
            canShoot = true;
        }
        else
        {
            canShoot = false;
        }
   }

    private void Shoot()
    {
        Debug.Log("Atirando");
    }

    private float DistacePlayer
    {
        get
        {
            float distace = Vector3.Distance(transform.position, player.transform.position);
            return distace;
        }
    }
}

avatar
weslleyFx
Moderador

Masculino PONTOS : 2596
REPUTAÇÃO : 565
Idade : 19
Áreas de atuação : C#
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: (Ajuda) Inteligencia do inimigo

Mensagem por rafaelllsd em Dom Maio 01, 2016 3:37 pm

Por favor gostaria da explicação.
avatar
rafaelllsd
ProgramadorMaster

Masculino PONTOS : 2029
REPUTAÇÃO : 305
Idade : 17
Áreas de atuação : Programação C#.
Modelagem Básica.
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: (Ajuda) Inteligencia do inimigo

Mensagem por weslleyFx em Dom Maio 01, 2016 3:55 pm

Bom vamos começar pegando a distancia do player usando property (propriedade)
quando eu uso get ele e executado quando a propriedade é lida a sim retornando um valor

Código:

    private float DistacePlayer
    {
        get
        {
            float distace = Vector3.Distance(transform.position, player.transform.position);
            return distace;
        }
    }

logo se a distancia for menor ou igual canShoot = true se não canShoot = false

Código:


 if (DistacePlayer <= distanceToShoot)
        {
            canShoot = true;
        }
        else
        {
            canShoot = false;
        }


logo canShoot igual a true faço o inimigo parar e chamar a void Shot que sera dedicada ao tiro se não o inimigo vai em busca do player

Código:

        if (canShoot)
        {
            Shoot();
            navMesh.stoppingDistance = distanceToShoot;
        }
        else
        {
            navMesh.SetDestination(player.transform.position);
        }


like Very Happy
avatar
weslleyFx
Moderador

Masculino PONTOS : 2596
REPUTAÇÃO : 565
Idade : 19
Áreas de atuação : C#
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: (Ajuda) Inteligencia do inimigo

Mensagem por rafaelllsd em Dom Maio 01, 2016 6:22 pm

Entendi, obrigado vou testar.

@Edit:
Fico bom, mais acho que não expressei minha ideia corretamente, é apenas assim, se o player tiver menos de 30 metros do inimigo o inimigo vai atrás do player se não ele vai atras de outro inimigo com a Tag(Inimigo). só que quando eu duplico o inimigo, o inimigo duplicado fica parado atirando no vento em vez de ir atrás de outro inimigo. mas se chego perto ele vem atras de mim, caso ao contrario fica parado atirando no vento. apenas é se eu tiver perto o inimigo vem atrás de mim se não ele vai atras de outro inimigo que esteja na fase.
avatar
rafaelllsd
ProgramadorMaster

Masculino PONTOS : 2029
REPUTAÇÃO : 305
Idade : 17
Áreas de atuação : Programação C#.
Modelagem Básica.
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: (Ajuda) Inteligencia do inimigo

Mensagem por weslleyFx em Dom Maio 01, 2016 8:02 pm

rafaelllsd escreveu:Entendi, obrigado vou testar.

@Edit:
Fico bom, mais acho que não expressei minha ideia corretamente, é apenas assim, se o player tiver menos de 30 metros do inimigo o inimigo vai atrás do player se não ele vai atras de outro inimigo com a Tag(Inimigo). só que quando eu duplico o inimigo, o inimigo duplicado fica parado atirando no vento em vez de ir atrás de outro inimigo. mas se chego perto ele vem atras de mim, caso ao contrario fica parado atirando no vento. apenas é se eu tiver perto o inimigo vem atrás de mim se não ele vai atras de outro inimigo que esteja na fase.


trocando em miudos vc quer que o inimigo vá a traz do player se a distancia for menor que 30 se não ele vai em busca de outro player mais próximo ?
avatar
weslleyFx
Moderador

Masculino PONTOS : 2596
REPUTAÇÃO : 565
Idade : 19
Áreas de atuação : C#
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: (Ajuda) Inteligencia do inimigo

Mensagem por rafaelllsd em Dom Maio 01, 2016 8:17 pm

praticamente sim. tentei no script acima deu +/- certo mais tem esse bug do inimigo clone n seguir o outro caso esteja longe do player.
avatar
rafaelllsd
ProgramadorMaster

Masculino PONTOS : 2029
REPUTAÇÃO : 305
Idade : 17
Áreas de atuação : Programação C#.
Modelagem Básica.
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: (Ajuda) Inteligencia do inimigo

Mensagem por weslleyFx em Dom Maio 01, 2016 9:19 pm

rafaelllsd escreveu:praticamente sim. tentei no script acima deu +/- certo mais tem esse bug do inimigo clone n seguir o outro caso esteja longe do player.

vc tem skype ? se tiver manda ai la vc me explica direito
avatar
weslleyFx
Moderador

Masculino PONTOS : 2596
REPUTAÇÃO : 565
Idade : 19
Áreas de atuação : C#
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: (Ajuda) Inteligencia do inimigo

Mensagem por rafaelllsd em Dom Maio 01, 2016 9:51 pm

Eu uso steam em vez de skype. é aquilo que você disse "trocando em miudos vc quer que o inimigo vá a traz do player se a distancia for menor que 30 se não ele vai em busca de outro player mais próximo ?"
Sim é isso, mais o inimigo segue outro inimigo entendeu, como se o outro inimigo fosse um player. ou seja um inimigo mata o outro '-'
avatar
rafaelllsd
ProgramadorMaster

Masculino PONTOS : 2029
REPUTAÇÃO : 305
Idade : 17
Áreas de atuação : Programação C#.
Modelagem Básica.
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: (Ajuda) Inteligencia do inimigo

Mensagem por weslleyFx em Dom Maio 01, 2016 9:57 pm

rafaelllsd escreveu:Eu uso steam em vez de skype. é aquilo que você disse "trocando em miudos vc quer que o inimigo vá a traz do player se a distancia for menor que 30 se não ele vai em busca de outro player mais próximo ?"
Sim é isso, mais o inimigo segue outro inimigo entendeu, como se o outro inimigo fosse um player. ou seja um inimigo mata o outro '-'

Então todos matão todos ?
avatar
weslleyFx
Moderador

Masculino PONTOS : 2596
REPUTAÇÃO : 565
Idade : 19
Áreas de atuação : C#
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: (Ajuda) Inteligencia do inimigo

Mensagem por rafaelllsd em Dom Maio 01, 2016 10:02 pm

Sim, é tipo um multiplayer com bot, só que offline '--'
avatar
rafaelllsd
ProgramadorMaster

Masculino PONTOS : 2029
REPUTAÇÃO : 305
Idade : 17
Áreas de atuação : Programação C#.
Modelagem Básica.
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: (Ajuda) Inteligencia do inimigo

Mensagem por weslleyFx em Seg Maio 02, 2016 12:25 am

isso podia ser resolvido fazendo com que todos os "jogadores" tivessem a mesma Tag Mais acho que você quer preservar certo ? se for o caso o jeito que pensei no momento foi esse tem vários outros mais creio que esse seja mais simples de compreender e mais didático


pegando os componentes e removendo um inimigo da lista que no caso ele mesmo

Código:

    void Start ()
    {
        navMesh = GetComponent<NavMeshAgent>();
        GetEnemy();
        enemy.Remove(gameObject);
    }

   a variável enemyForFollow e igualada FindEnemy a propriedade que retorna o player que esta em seu range(alcance)
   logo se enemyForFollow não for null ele vai executar o bloco

   
Código:

    void Update()
    {

        enemyForFollow = FindEnemy;

        if (enemyForFollow != null)
        {
            if (thisAttack)
            {
                Shoot();
                navMesh.stoppingDistance = distanceToShoot;
            }
            else
            {
                navMesh.SetDestination(enemyForFollow.transform.position);
            }


            if (DistacePlayer <= distanceToShoot)
            {
                thisAttack = true;
            }
            else
            {
                thisAttack = false;
            }

        }
        else
        {
            navMesh.SetDestination(transform.position);
        }

    }
    

   procurando todos os objetos e adicionando e suas determinadas matrizes
   logo depois adicionado a lista de inimigos

   
Código:

    private void GetEnemy()
    {
        GameObject[] playersFind = GameObject.FindGameObjectsWithTag("Player");
        GameObject[] enemiesFind = GameObject.FindGameObjectsWithTag("Enemy");

        enemy.AddRange(playersFind);
        enemy.AddRange(enemiesFind);
    }
    


   esse e propriedade que retornara um player que esta em seu alcance fazendo uma pesquisa na lista de inimigos

   
Código:

    private GameObject FindEnemy
    {
        get
        {
            foreach (var player in enemy)
            {
                float tempDistance = Vector3.Distance(transform.position, player.transform.position);

                if (tempDistance <= distanceForFollow)
                {
                    return player;
                }
            }

            return null;
        }
    }
    

script
Código:

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

[RequireComponent(typeof(NavMeshAgent))]
public class EnemyBehaviour : MonoBehaviour
{

    private NavMeshAgent navMesh;
    private bool thisAttack;

    public float distanceForFollow;
    public float distanceToShoot;
    public List<GameObject> enemy;

    private GameObject enemyForFollow;


    void Start ()
    {
        navMesh = GetComponent<NavMeshAgent>();
        GetEnemy();
        enemy.Remove(gameObject);
    }

    void Update()
    {

        enemyForFollow = FindEnemy;

        if (enemyForFollow != null)
        {
            if (thisAttack)
            {
                Shoot();
                navMesh.stoppingDistance = distanceToShoot;
            }
            else
            {
                navMesh.SetDestination(enemyForFollow.transform.position);
            }


            if (DistacePlayer <= distanceToShoot)
            {
                thisAttack = true;
            }
            else
            {
                thisAttack = false;
            }

        }
        else
        {
            navMesh.SetDestination(transform.position);
        }

    }

    private void Shoot()
    {
        Debug.Log("Atirando");
    }

    private void GetEnemy()
    {
        GameObject[] playersFind = GameObject.FindGameObjectsWithTag("Player");
        GameObject[] enemiesFind = GameObject.FindGameObjectsWithTag("Enemy");

        enemy.AddRange(playersFind);
        enemy.AddRange(enemiesFind);
    }

    private GameObject FindEnemy
    {
        get
        {
            foreach (var player in enemy)
            {
                float tempDistance = Vector3.Distance(transform.position, player.transform.position);

                if (tempDistance <= distanceForFollow)
                {
                    return player;
                }
            }

            return null;
        }
    }

    private float DistacePlayer
    {
        get
        {
            if (enemyForFollow != null)
            {
                float distace = Vector3.Distance(transform.position, enemyForFollow.transform.position);
                return distace;
            }

            return 0;
        }
    }
}


talvez seja oque vc queira ou não '-' caso seja vai ser de grande importância que vc intenda o Código


Última edição por weslleyFx em Qui Maio 05, 2016 10:03 pm, editado 1 vez(es)
avatar
weslleyFx
Moderador

Masculino PONTOS : 2596
REPUTAÇÃO : 565
Idade : 19
Áreas de atuação : C#
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: (Ajuda) Inteligencia do inimigo

Mensagem por rafaelllsd em Seg Maio 02, 2016 1:00 am

Funcionou, era o que eu queria obrigado pela ajuda.
avatar
rafaelllsd
ProgramadorMaster

Masculino PONTOS : 2029
REPUTAÇÃO : 305
Idade : 17
Áreas de atuação : Programação C#.
Modelagem Básica.
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

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