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:
Como faço para importar um asset de dentro da unity?
Como dar save e load em um objeto instanciado?
MANTER TELA DO CELULAR LIGADA
Tirar Fotos no Unity 5 FPS
Como não destruir um objeto depois de chamar um cena.
Tem como controlar a posição de uma particula?
Ajuda com scripts de inimigo e player'' interação de zumbi e player''
Unity Banco de Dados
como fazer o personagem rolar em 2D
como faço para transformar uma list em Array?
como fazer uma objeto se mover sozinho?
Como carregar imagens da pasta ( Arquivos e não Sprites ) via script.
[DÚVIDA] Como faço pra importar texturas do PC para o jogo in-game?
[DUVIDA] Verificar se um texto é um email
Como Detectar toques e destruir objetos no jogo
Duvida sobre o Unet
[RESOLVIDO] Camera FPS atravessa paredes
Baixos Brasil - Jogo de Carro Brasileiro!
PC Gamer!
Como acessar o Emission do Material e mudar a cor via script
Como carregar a cena mais rápido, ao apertar um botão ???
Trocando a texture do terreno com script
Alguem Conhece algum jogo famoso desenvolvido no Photon?
visualizador de ritmo
[SUPER ATUALIZAÇÃO] - Android - Night Hunter RPG, Faça um teste e avalie! Alpha #5
Curso de unity presencial
Adicionar marcador de Tempo no jogo
Preciso de Designer/Artista Para Card Game 2D
(Dúvida) Photon - Slot de salas criadas.
BUG COM NAVMESH Alguem Sabe Arrumar?
ERRO SCRIPT
[TUTORIAL] Spawn de objetos aleatorios em lugares aleatorios
ferr2D vale a pena?
Itemlist
Teste de jogo multiplayer ILHAS
Ilumição
[Dúvida] Como fazer um corpo rígido receber velocidade em direção ao mouse.
(Animator)Voltar a um estado de animação mais nao executar a mesma
Modelagem Uvm
Precisamos de modeladores
Rigidbody2D AddForce - Como adicionar uma força oneshot.
SCRIPT TIRO - UNITY 3d
duvida
Frameworks/tutoriais para jogo 2D?
[DEVLOG] Projeto - Girl Blade (download Pré-Alpha)
Mesmo material mas objeto mais claro
✖ Projeto HOSPICE Horror Game !! ✖
Machado PBR | 3D Axe with PBR textures.
Em breve Ilhas Multiplayer, sobrevivencia PVP E PVM
Text multiplayer
[TUTORIAL] Avião Script
Colocar Gifs em uma UI Unity 5?
Como faço para a musica continuar tocando quando muda de cena?
[TUTORIAL] Luz Principal,Luz de Freio,Piscas para Carro,Moto,Caminhão,Ônibus,Etc...
como posso colocar tempo em qualquer script?
SCRIPT ISOMETRICO PARA ROTACIONAR O PLAYER COM MOUSE
MEU JOGO DE TERROR EM DESENVOLVIMENTO E BLOGGUER
Alguém pode fazer um rig pra mão do meu personagem?
Verificar quantos objetos tem a seguinte tag na scena
the ŞỮŘVƗVΔŁ ƗŞŁΔŇĐ [Lançamento]
Time
Grave no Som da Unity!
ESSE EO MEU JOGO QUE EU ESTOU DESENVOLVENDO (VERSAO ALPHA)
Assesar Script De Outra Script
R7 - GOOH (resident evil 7)
Formação de equipa para o Jogo Until the last
Suspensão carro com raycast
como criar um botao dentro do if() (em C# pq quero padronizar tudo na mesma linguagem)
Arquivos de Expanssão OBB
Formação de equipe para jogo estilo Rust/DayZ
[DUVIDA]como girar sprite somente no eixo X em direção do mouse
GRAVIDADE não é compatível com Camera.main.ScreenToViewportPoint ?
Recrutamento para jogo de sobrevivencia estilo DayZ/Rust/H1Z1
-[SCRIPT DE POSIÇÕES ]-
[Duvida] Unity5 - Physics2D.Raycast não obedece distância máxima.
[____APOIE O FÓRUM E O CANAL E GANHE RECOMPENSAS____]
como posso fazer sons dos passos do inimigo
Unity - Car engine sound - Primeiro teste
Dúvida sobre particulas
[RESOLVIDO] Executar animação após um X segundos
Como indentificar que estou escrevendo [Unity.UI inputField]
[RESOLVIDO] Blender - Mesh com ossos bugados
[RESOLVIDO] OntriggerEnter Bugado
[RESOLVIDO] Problema com o Reimport e atualização do modelo
Como fazer o raycast ignorar a primeira colisao?
[RESOLVIDO] Animações no script
Transição de Cores Entre Cenas!
Sistema de corrida
Terreno procedural com blocos para baixo
alguem poderia me ajudar??
[TUTORIAL] AI Enemy 2.0 + animações ( Jogos de terror )
alguem sabe um sistema/ideia/tutorial de nicknames/indentificaçao para NETWORK local???
Jogo na Play Store e atualmente tem 40 downloads.
Translate.rotate ( 0, 0, Erro )
[Duvida] Time.TimeScale em jogo multiplayer
Aplicativo Reseta o Banco de Dados - Sqlite
7 erros no script conectar
Audio Player C#
Divulgaçao de Battle of Worlds
Hoje à(s) 9:44 pm
Hoje à(s) 9:11 pm
Hoje à(s) 9:00 pm
Hoje à(s) 8:45 pm
Hoje à(s) 8:27 pm
Hoje à(s) 8:14 pm
Hoje à(s) 3:40 pm
Hoje à(s) 1:49 pm
Hoje à(s) 1:21 pm
Hoje à(s) 11:24 am
Hoje à(s) 7:03 am
Hoje à(s) 12:43 am
Hoje à(s) 12:33 am
Ontem à(s) 5:01 pm
Ontem à(s) 3:15 pm
Ontem à(s) 2:45 pm
Ontem à(s) 11:38 am
Qua Out 18, 2017 11:54 pm
Qua Out 18, 2017 11:28 pm
Qua Out 18, 2017 10:28 pm
Qua Out 18, 2017 10:13 pm
Qua Out 18, 2017 5:10 pm
Qua Out 18, 2017 3:21 pm
Qua Out 18, 2017 3:18 pm
Qua Out 18, 2017 2:47 pm
Qua Out 18, 2017 1:56 pm
Qua Out 18, 2017 1:10 pm
Qua Out 18, 2017 12:10 pm
Qua Out 18, 2017 3:08 am
Qua Out 18, 2017 12:29 am
Ter Out 17, 2017 9:57 pm
Ter Out 17, 2017 9:42 pm
Ter Out 17, 2017 9:36 pm
Ter Out 17, 2017 7:04 pm
Ter Out 17, 2017 5:52 pm
Ter Out 17, 2017 5:33 pm
Ter Out 17, 2017 4:44 pm
Ter Out 17, 2017 3:42 pm
Ter Out 17, 2017 3:39 pm
Ter Out 17, 2017 2:13 pm
Ter Out 17, 2017 12:16 pm
Ter Out 17, 2017 11:37 am
Ter Out 17, 2017 9:58 am
Ter Out 17, 2017 9:27 am
Ter Out 17, 2017 6:10 am
Ter Out 17, 2017 1:53 am
Seg Out 16, 2017 9:17 pm
Seg Out 16, 2017 8:06 pm
Seg Out 16, 2017 5:27 pm
Seg Out 16, 2017 4:26 pm
Seg Out 16, 2017 3:08 pm
Seg Out 16, 2017 12:52 pm
Seg Out 16, 2017 10:38 am
Seg Out 16, 2017 9:44 am
Seg Out 16, 2017 6:53 am
Seg Out 16, 2017 12:53 am
Dom Out 15, 2017 9:00 pm
Dom Out 15, 2017 8:42 pm
Dom Out 15, 2017 8:35 pm
Dom Out 15, 2017 7:23 pm
Dom Out 15, 2017 7:05 pm
Dom Out 15, 2017 6:06 pm
Dom Out 15, 2017 5:59 pm
Dom Out 15, 2017 5:41 pm
Dom Out 15, 2017 4:57 pm
Dom Out 15, 2017 4:11 pm
Dom Out 15, 2017 4:04 pm
Dom Out 15, 2017 3:29 pm
Dom Out 15, 2017 2:44 pm
Dom Out 15, 2017 1:59 pm
Dom Out 15, 2017 1:42 pm
Dom Out 15, 2017 1:37 pm
Dom Out 15, 2017 12:44 pm
Dom Out 15, 2017 11:25 am
Dom Out 15, 2017 10:03 am
Dom Out 15, 2017 9:19 am
Dom Out 15, 2017 9:19 am
Dom Out 15, 2017 9:09 am
Dom Out 15, 2017 8:23 am
Dom Out 15, 2017 1:39 am
Sab Out 14, 2017 11:57 pm
Sab Out 14, 2017 11:30 pm
Sab Out 14, 2017 7:07 pm
Sab Out 14, 2017 6:01 pm
Sab Out 14, 2017 5:55 pm
Sab Out 14, 2017 4:25 pm
Sab Out 14, 2017 12:50 pm
Sab Out 14, 2017 12:46 pm
Sex Out 13, 2017 11:05 pm
Sex Out 13, 2017 9:21 pm
Sex Out 13, 2017 8:27 pm
Sex Out 13, 2017 5:45 pm
Sex Out 13, 2017 5:37 pm
Sex Out 13, 2017 3:31 pm
Sex Out 13, 2017 2:59 pm
Sex Out 13, 2017 2:02 pm
Sex Out 13, 2017 11:17 am
Sex Out 13, 2017 9:27 am
Sex Out 13, 2017 2:17 am
Dom3000
Phph09
Phph09
Phph09
richardson
Dom3000
felipehobs1
Phph09
felipehobs1
Dom3000
Callyde Jr
kalielson
kalielson
Phph09
Phph09
Valakinhas
TylerDurden
Duarte
Duarte
richardson
Dom3000
marino96
fecirineu
richardson
fecirineu
fariscolucas
fariscolucas
Manawydan
rafaelllsd
rafaelllsd
endersoneneilsa
natanael.olimpio
alxgames
Callyde Jr
Unidade3d5
WesClaudino
EvertonSantos
BRGC
michelly
Phph09
ScorpionG4mer
EvertonSantos
diegopds
gabrielgrk
zZAndersonZz
Fagner
MRX
ScorpionG4mer
Unidade3d5
richerd
Matrirxp
Callyde Jr
colosso16
Joao07
Callyde Jr
EvertonSantos
EvertonSantos
Ghosthy
felipehobs1
MRX
Callyde Jr
Duarte
glauco
luis gustavo
thales.ulisses
heliab125
marcelinodns
luis gustavo
Duarte
CodeZone
contaska
contaska
thales.ulisses
Weslley
dimmuo
dstaroski
glauco
dstaroski
Phph09
eusouoglaydson
Weslley
Fagner
alxgames
Fagner
Fagner
MRX
Callyde Jr
Callyde Jr
luizmauro123
Madness
glauco
luiz12345
Fagner
Felipe Costa
Phph09
ubroly
PatifeCraft
dstaroski
Dom3000

(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 : 2180
REPUTAÇÃO : 328
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 Weslley 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
Weslley
Moderador

Masculino PONTOS : 2790
REPUTAÇÃO : 597
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 : 2180
REPUTAÇÃO : 328
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 Weslley 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
Weslley
Moderador

Masculino PONTOS : 2790
REPUTAÇÃO : 597
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 : 2180
REPUTAÇÃO : 328
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 Weslley 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
Weslley
Moderador

Masculino PONTOS : 2790
REPUTAÇÃO : 597
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 : 2180
REPUTAÇÃO : 328
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 Weslley 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
Weslley
Moderador

Masculino PONTOS : 2790
REPUTAÇÃO : 597
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 : 2180
REPUTAÇÃO : 328
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 Weslley 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
Weslley
Moderador

Masculino PONTOS : 2790
REPUTAÇÃO : 597
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 : 2180
REPUTAÇÃO : 328
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 Weslley 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
Weslley
Moderador

Masculino PONTOS : 2790
REPUTAÇÃO : 597
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 : 2180
REPUTAÇÃO : 328
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