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 mudar alguma configuração de acordo com a resolução da tela?
[ FIND ME ] Game em Desenvolvimento
Timer
Compilando pra android
Como Posso editar Animação Generic mixamo ?
[Projeto] Line Battle
[AULA] Estrutura de repetição for
[AULA] Listas (List)
Como encurtar e melhorar meu código, elevador(+ dúvida sobre programação em unity)
GetActiveScene
[TUTORIAL] C# .NET | Visual Studio - conexão com banco de dados MySQL
[____APOIE O FÓRUM E O CANAL E GANHE RECOMPENSAS____]
[___COMO UTILIZAR O FÓRUM___] Principais botões e suas funções
[TUTORIAL] MOVIMENTO NA ARMA PARA FICAR MAIS REAL!
(dúvida) fazer o player cair de paraquedas estilo pubg
[TUTORIAL] Como criar cénarios 2D muito rapido e facil.
Script que ao clicar em um objeto, abra um formulário
Porta "bugada"
[TUTORIAL] C# .NET | Cores aleatorias RGB
RECRUTA-SE DESIGNER PARA JOGO ONLINE..
[PROJETO MOBILE] Defeat the Illuminatis
Script de porta trancada com audio
Animation Fps
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
[RESOLVIDO] Problema com StartCoroutine
[RESOLVIDO] Erro ao usar DLL/Biblioteca do Mysql
R7 - GOOH (resident evil 7)
[ NONAME ] Procura de pessoas interessadas
FPS - Armas e balas
Voice Chat
Jogo - Board Challenge Free
como atualizar o status do perfil na conta unity
[RESOLVIDO] Gerenciador de arquivos CSV
Editor de vídeo gratuito.
Erro ao usar WWW na unity
[RESOLVIDO] color.a diminuir gradualmente
Pack de áudio/ efeitos sonoros gratuitos.
[TUTORIAL] Cursor do mouse não aparecer durante o jogo
Se eu fazer uma animação diferente pra cada personagem,vai pesar ?
Como fazer um sistema de se esconder?
Dragon Bones [software]
Auto-Update de forma rápida, simples e barata.
Como fazer um botão Joystick que controle o First Person Controller?
Cloud Save por arquivo binario no google play services
[RESOLVIDO] Como editar o texto que eu selecionar ? - (InputField)
Como verificar uma colisão constante ?
[TUTORIAL] CONFIGURANDO O UNITY PARA COMPILAR PARA ANDROID
Como fazer ótimo FPSController com full body?
onde publicar os trabalhos prontos.
[RESOLVIDO] Como usar "?" e ":" ?
[RESOLVIDO] Detectar colisão usando if em C#?
[ENQUETE OFICIAL] Você está vendo o CHAT DO FÓRUM?????
SCRIPT LANTERNA
Como desenvolver uma CALCULADORA
Diferença entre Dictionary e Classes[]
[TUTORIAL] Banco de dados || MySQL
Corrida infinita
DESIGN PATTERN MVC - DÚVIDA SOBRE UNITYACTION E UNITYEVENT
Transformar modelos reais(pessoas) em modelos 3D
carregar nova cena java script e multiplayer
[AULA] Programação orientada a objetos: Classes e instâncias
[Em Desenvolvimento] Battles of Worlds
Baixe grátis modelos 3D - Hospital + objetos e personagens equipados com ossos
[TUTORIAL] Sistema de carro complexo.
[AULA] O que é programação orientada a objetos? POO
[TUTORIAL] Criar efeito Paralláx com UI
[Dica] Como estudar as Classe ou Funçoes da Unity no VS
FPSController é possível usa-lo com o Photon?
Alguém para testar alguns jogos meus (Saber se estão legais, se tem bugs e tals)
Unity Ads / Admob
Script para login na Google Play Games não funciona
[FORMAÇÃO DE EQUIPE] Degubel Team
Transição suave
[____ADMINISTRAÇÃO____] PRECISO DE AJUDA [DICA PARA SER AJUDADO]
[RESOLVIDO] Script individual
Desenvolvimento Mobile (Resolução e Google Play Games)
Cursor não apareçe
[Projeto]Simples The Dolls Battle
Duvidas com Unet Criando um Servidor Online
Ajuda com Historia
Problemas com resolução da tela do Android.
[TUTORIAL] Sistema de Oficina de Carros
[TUTORIAL] Sistema simples para VOLTAR NO TEMPO, Unity 3D
(Dúvida) Adicionar variavel do CustomEditor em classe.
Bug textura, SketchUp para Unity 3d
Como receber a avaliação dos jogadores?
Como criar um Sistema de Craft para Mobile.
[_____RESTAURAÇÃO DO FÓRUM_____]
Velocidade constante em qualquer plataforma Unity 5
[HELP] BUG NO SISTEMAS DE COMBOS DO GAMESINDIE
[Projeto] Corcle (Mobile) - Um jogo simples com um nome estranho.
Sombra Preta
Deformar mesh sem usar rigidbody e reconhecer força do impacto
Fisica para plataformer 2d sem usar rigidibody!
[TUTORIAL] Unity 5- Sistema de PLATAFORMAS COM ROTAS
Enhance - SDK Integration Elimination!
[PROJETO] A ULTIMA CASA DA RUA
[PROJETO] House of Hipocrisy: Chapter One
[RESOLVIDO] problema com iluminação
Hoje à(s) 6:06 pm
Hoje à(s) 5:48 pm
Hoje à(s) 3:50 pm
Hoje à(s) 2:05 pm
Hoje à(s) 1:11 pm
Hoje à(s) 9:47 am
Hoje à(s) 12:42 am
Hoje à(s) 12:35 am
Ontem à(s) 11:38 pm
Ontem à(s) 8:06 pm
Ontem à(s) 6:54 pm
Ontem à(s) 4:24 pm
Ontem à(s) 4:23 pm
Ontem à(s) 9:44 am
Ontem à(s) 9:42 am
Ontem à(s) 12:58 am
Ontem à(s) 12:05 am
Sex Jul 13, 2018 11:09 pm
Sex Jul 13, 2018 10:20 pm
Sex Jul 13, 2018 8:28 pm
Sex Jul 13, 2018 2:50 pm
Sex Jul 13, 2018 2:13 pm
Sex Jul 13, 2018 12:39 pm
Sex Jul 13, 2018 11:44 am
Sex Jul 13, 2018 11:01 am
Sex Jul 13, 2018 10:31 am
Sex Jul 13, 2018 8:53 am
Qui Jul 12, 2018 11:07 pm
Qui Jul 12, 2018 10:52 pm
Qui Jul 12, 2018 10:14 pm
Qui Jul 12, 2018 9:27 pm
Qui Jul 12, 2018 8:09 pm
Qui Jul 12, 2018 8:05 pm
Qui Jul 12, 2018 7:33 pm
Qui Jul 12, 2018 7:12 pm
Qui Jul 12, 2018 6:29 pm
Qui Jul 12, 2018 6:11 pm
Qui Jul 12, 2018 5:04 pm
Qui Jul 12, 2018 4:10 pm
Qui Jul 12, 2018 3:41 pm
Qui Jul 12, 2018 3:05 pm
Qui Jul 12, 2018 11:38 am
Qui Jul 12, 2018 10:27 am
Qui Jul 12, 2018 10:27 am
Qui Jul 12, 2018 10:05 am
Qui Jul 12, 2018 9:51 am
Qui Jul 12, 2018 1:16 am
Qua Jul 11, 2018 7:25 pm
Qua Jul 11, 2018 6:33 pm
Qua Jul 11, 2018 5:24 pm
Qua Jul 11, 2018 1:44 pm
Ter Jul 10, 2018 7:54 pm
Ter Jul 10, 2018 6:23 pm
Ter Jul 10, 2018 5:37 pm
Ter Jul 10, 2018 2:14 pm
Ter Jul 10, 2018 1:09 pm
Ter Jul 10, 2018 11:48 am
Ter Jul 10, 2018 10:02 am
Ter Jul 10, 2018 9:56 am
Ter Jul 10, 2018 3:01 am
Seg Jul 09, 2018 5:45 pm
Seg Jul 09, 2018 5:26 pm
Seg Jul 09, 2018 4:00 pm
Seg Jul 09, 2018 2:16 pm
Seg Jul 09, 2018 9:33 am
Seg Jul 09, 2018 9:28 am
Dom Jul 08, 2018 11:15 pm
Dom Jul 08, 2018 1:38 pm
Dom Jul 08, 2018 12:25 pm
Dom Jul 08, 2018 10:27 am
Dom Jul 08, 2018 9:00 am
Dom Jul 08, 2018 12:37 am
Sab Jul 07, 2018 10:27 pm
Sab Jul 07, 2018 10:07 pm
Sab Jul 07, 2018 9:50 pm
Sab Jul 07, 2018 9:16 pm
Sab Jul 07, 2018 9:16 pm
Sab Jul 07, 2018 1:22 pm
Sab Jul 07, 2018 12:25 pm
Sab Jul 07, 2018 11:22 am
Sab Jul 07, 2018 10:04 am
Sab Jul 07, 2018 8:30 am
Sab Jul 07, 2018 1:02 am
Sex Jul 06, 2018 5:41 pm
Sex Jul 06, 2018 5:03 pm
Sex Jul 06, 2018 5:03 pm
Sex Jul 06, 2018 4:58 pm
Sex Jul 06, 2018 4:54 pm
Sex Jul 06, 2018 4:46 pm
Sex Jul 06, 2018 4:41 pm
Sex Jul 06, 2018 4:40 pm
Sex Jul 06, 2018 4:30 pm
Sex Jul 06, 2018 4:29 pm
Sex Jul 06, 2018 4:26 pm
Sex Jul 06, 2018 3:57 pm
Sex Jul 06, 2018 3:24 pm
Sex Jul 06, 2018 12:05 pm
Sex Jul 06, 2018 8:21 am
Sex Jul 06, 2018 12:59 am
LucioHenrique890
ruanzikaad
hetrodo
NKKF
artplayer
dstaroski
Tegh
Tegh
AprDev
NKKF
Tegh
dstaroski
dstaroski
gcs13
gcs13
LucioHenrique890
JohnRambo
Nalfam
Tegh
Picode
dstaroski
dstaroski
FelipeGD
NKKF
igorobm
igorobm
RafaelSquid1
Locodapraça
LucioHenrique890
FelipeGD
FelipeGD
dstaroski
NKKF
Nalfam
NKKF
Eduardoro39
FelipeGD
FelipeGD
FelipeGD
RafaelSquid1
Zack2
NKKF
RafaelSquid1
jhobert77
Tiago95
NKKF
FelipeGD
FelipeGD
marciosilva
PauloFR
Lorena Martins
zZAndersonZz
Phph09
EduFall
MayLeone
kaique2346
passarinho69
NKKF
Isabela
LucioHenrique890
NKKF
Dom3000
MrTFGamer1
LucioHenrique890
Tegh
Tegh
Tegh
loganout
GamersBR
artplayer
marcos4503
Santos
NKKF
dstaroski
Priste_Hell
NKKF
NKKF
FelipeSouza11
fecirineu
julioou
NKKF
jeffinho17
MarcosSchultz
rafaelllsd
MarcosSchultz
Phph09
Phph09
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
dkrazor
RozekEnhance
bertarele
XN4k3Dbr
MRX

[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 : 958
REPUTAÇÃO : 64
Idade : 16
Á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

- Tópicos similares

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