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:
Unity crashando depois que eu tento abrir
Dúvidas Sobre OnCollider
Porque não funciona?
duvida sobre prefab, object e gameobject
Como faço para este item aparecer no meu inventário de forma correta?
Unity Banco de Dados
Otimizacoa por Colisor - (Desativar/Ativar)
Meu primeiro projeto
Tem como eu Salvar os Dados de Um Terreno?
photonnetwork vale a pena ?
Error NullReferenceException: Object reference not set to an instance of an object
[RESOLVIDO] Como ajustar o volume em todo o jogo
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
Desativar butão de acordo valor em seu script [Avançado]
Como fazer skins completa de battle Royale
Controle de Personagem
[TUTORIAL] DEBUG DE TEMPO
[Alpha Android] - Winthia Chronicles (Alpha Devlog, 20 de fevereiro de 2018). Lançamento!
FantasyDragon Online - Formação de Equipe (P.A / Designer Gráfico )
Como "grudar" objetos no unity?
Slime Shop: Multiplayer (Teste De Jogo :D )
Monitorar Usuarios
Dúvida sobre animação
Alpha Fossil
Configuração de efeitos com água na Unity
Dúvida sobre o uso da Unity em fonte de 47-63hz
Como fazer 1 gerador
[TUTORIAL] Explodir Mesh "Explodir Objeto"
[____APOIE O FÓRUM E O CANAL E GANHE RECOMPENSAS____]
[____ADMINISTRAÇÃO____] PRECISO DE AJUDA [DICA PARA SER AJUDADO]
[Asset]Terreno .dae
[Asset] Personagem 3d basico sem uso
Erro ai importar
[Duvida] Menu Input
[RESOLVIDO] Adaptar o script para mostrar o erro
Objetos girando em órbita de outro
Erro Build Android
[RESOLVIDO] Não consigo alterar o shader de modelo feito no makehuman
[TUTORIAL]Sistema de Pet Virtual -AULA 3 NOVO[20/02/2018]
Pack de animações para jogos de Luta
GamePad Android!
Mudar um .TXT usando um site
"Simular" uma VPS
Velocimetro de Ponteiro!
[TUTORIAL] Unity 5 - Wheel Collider, veículos, suspensão realista.
Formação de Equipe
[ENCERRADO] Preciso de Programadores para equipe
GC.Collect
[Duvida] Como acessar uma variavel nãa estatica(static).
Inserir Trigger
Fps Caindo Instanteneamente
LoadSceneAsync em varias cenas e escolher qual chamar
Script de Semaforo
Qual versão da unity é recomendada HOJE?
duvida de desempenho ao Instanciar Gameobject
[RESOLVIDO] Bug provavelmente pivot
[TUTORIAL]Sistema de Pet Virtual -AULA 2 [Tamagotchi](ANDROID/PC)
[TUTORAIL] Loja Virtual Fácil e Grátis
Fiz esse jogo a bastante tempo que tipo de mecanica eu poderia adicionar?
Carregar um prefab usando byte[]
[RESOLVIDO] Tem como Um Script rodar antes de Outro
Procuro modelador
Duvida com velocidade X e velocidade Z
Problemas para criar um BackGround
[TUTORIAL] Calculando distância entre gameObjects
Restringir InpultField!
Preciso Modelador com experiencia em Modelar Veículos
Script inimigo x Player
Novo Jogo (BETA ~ Sem Nome)
Multiplayer Unet: no meio da partida os client saem do nada(sistema de Checar conexão)
[RESOLVIDO] Não Consigo Acessar meus Materiais do Modelo !
como alterar o Rect Transform?
[WIP] Projeto ainda sem título
Mudar a densidade de Pixels na tela
O que fazer para ser um programador
[TUTORIAL] Capturar Imagem da WebCam e Salvar No seu Pc
tem como criar Uma Imagem no Canvas?
Membro Avançado
Tem como fazer um cube 3d invisível?
Player não acompanha plataforma
Jogo de plataforma que eu fiz
Alguém para testar alguns jogos meus (Saber se estão legais, se tem bugs e tals)
(Duvida) Como criar um sistema de dialogos?
Equipe para criação de jogo de terror.
Espelho Realista
[TUTORIAL]Sistema de Pet Virtual [Tamagotchi] Completo (ANDROID/PC)
Equipe para criação de assets
Procuro Modelador Low Poly
Unity não reconhece meu celular
[TUTORIAL]Sistema Basico de Combustivel (PC e Android)
[ Run Sara, run ! ] Em desenvolvimento para android.
[SCRIPT] Controle Simples com movimento e rotação
Metodos Assincrono na Unity
Alterar componentes de todos os objeto de um array
Duvida com spawn de IA
[TUTORIAL] CARREGAR CENA APÓS UM TEMPO UNITY 4.7
Melhorar Script
QRcode em unity
ajuda com os scripts fps entre outros
Hoje à(s) 4:50 pm
Hoje à(s) 4:45 pm
Hoje à(s) 4:41 pm
Hoje à(s) 3:47 pm
Hoje à(s) 3:25 pm
Hoje à(s) 3:21 pm
Hoje à(s) 2:39 pm
Hoje à(s) 2:19 pm
Hoje à(s) 1:58 pm
Hoje à(s) 1:31 pm
Hoje à(s) 11:10 am
Hoje à(s) 2:29 am
Ontem à(s) 8:44 pm
Ontem à(s) 8:13 pm
Ontem à(s) 7:02 pm
Ontem à(s) 5:49 pm
Ontem à(s) 4:29 pm
Ontem à(s) 2:42 pm
Ontem à(s) 2:36 pm
Ontem à(s) 1:50 am
Qua Fev 21, 2018 10:36 pm
Qua Fev 21, 2018 8:53 pm
Qua Fev 21, 2018 8:35 pm
Qua Fev 21, 2018 7:55 pm
Qua Fev 21, 2018 7:37 pm
Qua Fev 21, 2018 7:00 pm
Qua Fev 21, 2018 6:33 pm
Qua Fev 21, 2018 5:58 pm
Qua Fev 21, 2018 4:52 pm
Qua Fev 21, 2018 4:51 pm
Qua Fev 21, 2018 3:55 pm
Qua Fev 21, 2018 3:21 pm
Qua Fev 21, 2018 2:57 pm
Qua Fev 21, 2018 2:35 pm
Qua Fev 21, 2018 12:46 pm
Qua Fev 21, 2018 11:40 am
Qua Fev 21, 2018 10:32 am
Qua Fev 21, 2018 10:03 am
Ter Fev 20, 2018 11:43 pm
Ter Fev 20, 2018 8:55 pm
Ter Fev 20, 2018 7:51 pm
Ter Fev 20, 2018 7:48 pm
Ter Fev 20, 2018 7:20 pm
Ter Fev 20, 2018 7:12 pm
Ter Fev 20, 2018 7:11 pm
Ter Fev 20, 2018 6:54 pm
Ter Fev 20, 2018 6:15 pm
Ter Fev 20, 2018 5:52 pm
Ter Fev 20, 2018 5:14 pm
Ter Fev 20, 2018 4:49 pm
Ter Fev 20, 2018 4:48 pm
Ter Fev 20, 2018 4:42 pm
Ter Fev 20, 2018 4:38 pm
Ter Fev 20, 2018 4:31 pm
Ter Fev 20, 2018 4:30 pm
Ter Fev 20, 2018 4:25 pm
Ter Fev 20, 2018 1:31 pm
Ter Fev 20, 2018 12:20 pm
Ter Fev 20, 2018 12:56 am
Ter Fev 20, 2018 12:21 am
Seg Fev 19, 2018 8:29 pm
Seg Fev 19, 2018 12:19 pm
Seg Fev 19, 2018 9:23 am
Seg Fev 19, 2018 12:35 am
Dom Fev 18, 2018 9:57 pm
Dom Fev 18, 2018 7:51 pm
Dom Fev 18, 2018 5:03 pm
Dom Fev 18, 2018 3:56 pm
Dom Fev 18, 2018 2:41 pm
Dom Fev 18, 2018 1:21 pm
Dom Fev 18, 2018 12:09 pm
Dom Fev 18, 2018 11:45 am
Dom Fev 18, 2018 3:03 am
Dom Fev 18, 2018 2:24 am
Sab Fev 17, 2018 10:41 pm
Sab Fev 17, 2018 7:25 pm
Sab Fev 17, 2018 7:09 pm
Sab Fev 17, 2018 6:58 pm
Sab Fev 17, 2018 5:35 pm
Sab Fev 17, 2018 4:37 pm
Sab Fev 17, 2018 3:15 pm
Sab Fev 17, 2018 2:52 pm
Sab Fev 17, 2018 1:23 pm
Sex Fev 16, 2018 11:43 pm
Sex Fev 16, 2018 11:15 pm
Sex Fev 16, 2018 10:54 pm
Sex Fev 16, 2018 10:18 pm
Sex Fev 16, 2018 10:17 pm
Sex Fev 16, 2018 6:27 pm
Sex Fev 16, 2018 6:09 pm
Sex Fev 16, 2018 5:18 pm
Sex Fev 16, 2018 4:56 pm
Sex Fev 16, 2018 3:57 pm
Sex Fev 16, 2018 1:59 pm
Sex Fev 16, 2018 1:56 pm
Sex Fev 16, 2018 1:08 pm
Sex Fev 16, 2018 11:24 am
Sex Fev 16, 2018 11:21 am
Qui Fev 15, 2018 9:37 pm
xXGianlucksXx
ffabim
otavio00augusto
marcos4503
Fluttershy28
natanael.olimpio
marcos4503
Souris
Souris
marcos4503
felipehobs1
Samuelsk
felipehobs1
Felipe Costa
Daniel Dória
felipehobs1
luKkaSs
marcos4503
Dom3000
rafaelllsd
marcos4503
natanael.olimpio
Souris
Édipo
dstaroski
dstaroski
Souris
Samuelsk
dstaroski
dstaroski
Dom3000
felipehobs1
Dom3000
marcos4503
marcos4503
Phph09
maxwell111
Gilberto555
marcos4503
GameLACK
felipehobs1
Souris
Souris
Souris
Zack2
Zack2
marcos4503
Duarte
MarcosSchultz
michelly
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
marcos4503
fecirineu
felipehobs1
Zecker
Dom3000
alexs
AlvaroWalker
felipehobs1
recagonlei
Weslley
Jhonatham1
dstaroski
fabriciorsz34
recagonlei
nicolasfive
Dom3000
rafaelllsd
rafaelllsd
marcos4503
felipehobs1
Phph09
Phph09
Daniel Dória
Simplizãum S
Daniel Pires da Silva
GamersBR
Bruno
ÁguaMineral
Souris
fecirineu
minosso
minosso
otavio00augusto
fecirineu
ruanzikaad
Simplizãum S
junkflash30
MarcosSchultz
MarcosSchultz
TruffleDevelop
dstaroski
JrdeAmorim
Daniel Pires da Silva

[TUTORIAL] IA Simples Parte 2 (Atirar)

Ir em baixo

TUTORIAL [TUTORIAL] IA Simples Parte 2 (Atirar)

Mensagem por Matrirxp em Qua Mar 22, 2017 3:28 pm

Eae Galera.
Estou aqui de novo para fazer a segunda parte do tutorial de IA.

Na primeira parte fizemos ele mirar e seguir o player, para quem não viu a primeira parte esse é o link:
http://www.schultzgames.com/t3931-tutorial-ia-simples#27409

Primeiro Passo:
Vamos abrir a script do nosso inimigo.
Crie 2 variáveis:

Código:
public float distmax; 
public float distmin; 

E no nosso void Update vamos substituir os valores que colocamos no campo por essas variaveis:

Código:
if(campo > distmin & campo < distmax){

Assim podemos controlar melhor o campo de visão da IA

Segundo Passo:

Vamos criar um objeto para ser a arma do nosso inimigo, no meu caso usei outro cubo:


também vamos criar um prefab para nossa bala;


e um GameObject Empty:

vamos usa-lo para determinar por onde nossa bala vai sair

Terceiro Passo:

Crie 5 variáveis:

Código:
public GameObject bala;
 public float velocidade;
 public Transform arma;
 Rigidbody rbbala; 
GameObject clone;

A variável "bala" e o nosso prefab, a "velocidade" é a velocidade da bala, a "arma" é a transform da arma do inmigo nela vamos colocar o GameObject Empty que criamos, "rbbala" é a rigidbody da bala.


Agora vamos instanciar nosso prefab bala.
Dentro do void update:
Código:
void Update () {

 campo = Vector3.Distance (transform.position, alvo.transform.position);

 //O inimigo vai atras do player se a distancia entre eles for menor que 10 e maior que 2
 if(campo > distmin & campo < distmax){
 alvoroteition = Quaternion.LookRotation(alvo.position - transform.position, Vector3.up);
 transform.rotation = Quaternion.Slerp(transform.rotation, alvoroteition , Time.deltaTime * 4);

 //isso vai fazer ele seguir o player
 rb.AddRelativeForce(Vector3.forward * velo);

 //Tiro
 GameObject clone = Instantiate(bala,arma.position,arma.rotation) as GameObject;
rbbala = clone.GetComponent<Rigidbody> ();
 rbbala.AddForce(Vector3.forward * velocidade);


 }  

Instanciar a bala:
Código:
GameObject clone = Instantiate(bala,arma.position,arma.rotation) as GameObject;


Pegar rigidbody:
Código:
rbbala = bala.GetComponent<Rigidbody> ();


Adicionar força para a bala:
Código:
rbbala.AddForce(Vector3.forward * velocidade);

Quarto Passo:

Adicionar delay para bala:
Crie 2 variáveis:

Código:
public float delay;
float cdelay;


Dentro do void Update coloque:

Código:
                       //Tiro
 cdelay += 1 * Time.deltaTime;
 if(cdelay >= delay){
 GameObject clone = Instantiate(bala,arma.position,arma.rotation) as GameObject;
 rbbala.AddRelativeForce(Vector3.forward * velocidade);
 cdelay = 0;
 }

Assim o tiro vai sair quando cdelay for igual a delay.

Script inteira:
Código:
using UnityEngine;
using System.Collections;

public class Inimigo : MonoBehaviour {

 public float vida;//Vida do inimigo
 public float dano;//Dano do inimigo
 public float velo;//Velocidade do inimigo
 public float distmax; 
 public float distmin; 
 public Transform alvo;
 Rigidbody rb;
 Quaternion alvoroteition;
 float campo;
 //Tiro
 public GameObject bala;
 public float velocidade;
 public Transform arma;
 Rigidbody rbbala;
 public float delay;
 float cdelay;
 GameObject clone;

 // Use this for initialization
 void Start () {
 //Pegar Rigidbody
 rb = GetComponent<Rigidbody> ();
 }
 
 // Update is called once per frame
 void Update () {

 campo = Vector3.Distance (transform.position, alvo.transform.position);

 //O inimigo vai atras do player se a distancia entre eles for menor que 10 e maior que 2
 if(campo > distmin & campo < distmax){
 alvoroteition = Quaternion.LookRotation(alvo.position - transform.position, Vector3.up);
 transform.rotation = Quaternion.Slerp(transform.rotation, alvoroteition , Time.deltaTime * 4);

 //isso vai fazer ele seguir o player
 rb.AddRelativeForce(Vector3.forward * velo);

 //Tiro
 cdelay += 1 * Time.deltaTime;
 if(cdelay >= delay){
 clone = Instantiate(bala,arma.position,arma.rotation) as GameObject;
 rbbala = clone.GetComponent<Rigidbody> ();
 rbbala.AddRelativeForce(Vector3.forward * velocidade);
 cdelay = 0;
 }

 }  

 }


}



Agora nossa IA pode atirar. 
É isso galera espero que tenham gostado.

Referencias:

https://docs.unity3d.com/ScriptReference/Time-deltaTime.html
https://docs.unity3d.com/ScriptReference/Rigidbody.AddRelativeForce.html
https://docs.unity3d.com/ScriptReference/Rigidbody.html
https://docs.unity3d.com/ScriptReference/Quaternion.html
https://docs.unity3d.com/ScriptReference/Vector3.html
https://docs.unity3d.com/ScriptReference/Transform.html
avatar
Matrirxp
ProgramadorMaster

Masculino PONTOS : 814
REPUTAÇÃO : 64
Idade : 15
Áreas de atuação : Unity: Programação JavaScript e C#.
Programação: Python, C#, Java, HTML5,CSS.

Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Voltar ao Topo


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