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:
[TUTORIAL] Mensagem aparecer na tela conforme a distância do jogador (Unity 5)
Erro em script (photon)
[PEDIDOS DE TUTORIAIS]
(pedido) script para ativar e desativar um objeto,animação,etc...
Duvida em script de troca de cores de um objeto
Como faz para recuperar cena depois que unity fecha por causa de ERRO?
Como faço para deixar o objeto transparente ao passar atraz?
Script De Seleção de Objetos
Como faz para se a animação tal estiver acontecendo,acontece tal coisa?
Callback do Admob Vídeo Premiado ...
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
Mudar de scene multiplayer?
[RESOLVIDO] Vector3 em uma variável
A unity não abre o projeto!!
[____NOVA ÁREA____] Projetos em andamento
Fazer 4 Objetos receberem cada um uma Tag aleatoriamente
Problema com mutiplayer
Dano no inimigo
Converter String para UTF-8
Perseguição Policial Estilo GTA!
Idéias para games
Duvida com o GameJolt
[RESOLVIDO] Acessar um valor de outro Script em c#
Videos Recompensados AdMob
Simples Corredores Hotel | Speed Level Design (Unity 2017)
Cenário
Qual o melhor lugar para vender o jogo de PC e ganhar dinheiro sem ser a STEAM?
[TUTORIAL] Camera que segue o Player ( estilo GTA )
Site de Assets Alternativo a Asset Store Unity
[____SUGESTÕES PARA O FÓRUM____]
Jogo
SpaceInvaders - Android
[____ADERIR A UMA CATEGORIA NO FÓRUM____]
[DEVLOG] Projeto Coming Back(AHOWNN town) um MMO RPG 3D Game(Protótipo)
[TUTORIAL] Unity 5 - Wheel Collider, veículos, suspensão realista.
Direitos autorais de personagens.
Pegar item...
Acessar funçoes de outro script?
Criar os scrips no Android ?????
[TUTORIAL] SISTEMA DE CHUVA COM PARTICULAS.
como Desativar do inspector no script ?
Tem um modo facil para esperar tanto tempo e ocorrer uma açao?
Raycast em circulos(point to ckick)
Script LUZ PISCANDO
(duvida) porque esse erro estranho acontece com o modelo do scketchup
[____APOIE O FÓRUM E O CANAL E GANHE RECOMPENSAS____]
Como tira aquele caixinha que aparece erros ou avisos no jogo depois de fazer a build?
problema com ADMOB
Problema em dedectar a TAG
[DUVIDA] Da para colocar anúncios em jogos para PC ?
Lookat para o mais próximo
[Jogo] Flap OCO (Android & PC)
Como eu faço sprites ficarem escuras anoite?
Object Pooling
Como faz aparecer uma mensagem quando o jogador sair do jogo?
Inventario e craft estilo ark
como fazer o player aparecer do outro lado da porta quando muda de cena?
Quando fizer a build e recomendado deixar o architeture no x86 ou x86_64?
Como Chamar o Audio
Unity não reconhece meu celular
Textos de UI ficão com qualidade ruim
Como faço para a musica continuar tocando quando muda de cena?
Meu script de ser morto atropelado não funciona
[RESOLVIDO] Arrumar erros
[Asset] Simple Unity Assets - Pacote de assets para Unity.
Mostrar Pontuação No Game Over
Como eu faço um ontrigger "invertido"?
[RESOLVIDO] COMO FAZ PARA FAZER 2 TERRAINS TOTALMENTE DIFERENTES DO OUTRO?
MultiPlayer Unity Para Android!
Props Animations Asset
Mostrar Pontuação no game over
Terminei o meu jogo, mas algo deu errado.
[ASSET] Facilitação de controle de objetos
Problema em listar salas
Ranking com nome
Novo jogo - Stackx
Segurança no Unity
[TUTORIAL] Entrar no carro estilo GTA
[RESOLVIDO] Tem como melhorar a colisao? os objetos entram nos outros, caem do chao ,etc..
[DEVLOG] Projeto - Girl Blade (download Pré-Alpha)
DÚVIDA RECRIAR EFEITO NA UNITY
Me ofereço como escritor
Como adicionar uma força oposta a colisão no rigidbody?
Ajuda com script
[Dúvida]Erro error CS1525: Unexpected symbol 'u' em script
[Resolvido] É possível usar a unity com outros programas ? (config do pc na dúvida ;-; )
[Dúvida]Erro "UnityEngine.AI.NavMeshAgent.Stop()' is obsolete" como resolver ?
[Dúvida]Erro "Building to the assets folder is not allowed" ao tentar fazer build
[Equipe]Preciso de ajuda de um programador
CAMERA ENTRANDO NA PAREDE
como posso fazer um corpo perder a animação
Teste De Multiplayer
Como adicionar uma força oposta a colisão no rigidbody?
Usar o unity sem internet
Cenário jogo Endless Running
Photon Unity como funcina?
UM FANTASMA APARECEU NO MEU JOGO.
Como mudar cor do botao UI
[TUTORIAL] FPSController nadar e mergulhar, junto com efeito submerso
Hoje à(s) 12:38 am
Hoje à(s) 12:25 am
Ontem à(s) 10:53 pm
Ontem à(s) 10:47 pm
Ontem à(s) 10:25 pm
Ontem à(s) 10:19 pm
Ontem à(s) 10:14 pm
Ontem à(s) 9:56 pm
Ontem à(s) 9:25 pm
Ontem à(s) 3:57 pm
Ontem à(s) 2:51 pm
Ontem à(s) 1:22 pm
Ontem à(s) 9:28 am
Ontem à(s) 1:08 am
Ontem à(s) 12:33 am
Ontem à(s) 12:23 am
Ontem à(s) 12:06 am
Qua Nov 22, 2017 11:35 pm
Qua Nov 22, 2017 11:09 pm
Qua Nov 22, 2017 10:35 pm
Qua Nov 22, 2017 10:31 pm
Qua Nov 22, 2017 10:28 pm
Qua Nov 22, 2017 9:21 pm
Qua Nov 22, 2017 8:51 pm
Qua Nov 22, 2017 5:33 pm
Qua Nov 22, 2017 4:53 pm
Qua Nov 22, 2017 4:11 pm
Qua Nov 22, 2017 1:23 pm
Qua Nov 22, 2017 10:16 am
Qua Nov 22, 2017 6:06 am
Ter Nov 21, 2017 11:26 pm
Ter Nov 21, 2017 6:24 pm
Ter Nov 21, 2017 6:08 pm
Ter Nov 21, 2017 5:35 pm
Ter Nov 21, 2017 3:51 pm
Ter Nov 21, 2017 1:06 pm
Ter Nov 21, 2017 11:15 am
Ter Nov 21, 2017 7:27 am
Ter Nov 21, 2017 7:20 am
Ter Nov 21, 2017 3:46 am
Seg Nov 20, 2017 11:22 pm
Seg Nov 20, 2017 9:49 pm
Seg Nov 20, 2017 7:16 pm
Seg Nov 20, 2017 6:41 pm
Seg Nov 20, 2017 6:41 pm
Seg Nov 20, 2017 6:06 pm
Seg Nov 20, 2017 2:31 pm
Seg Nov 20, 2017 1:23 pm
Seg Nov 20, 2017 1:18 pm
Seg Nov 20, 2017 1:00 pm
Seg Nov 20, 2017 10:54 am
Dom Nov 19, 2017 10:05 pm
Dom Nov 19, 2017 9:52 pm
Dom Nov 19, 2017 8:15 pm
Dom Nov 19, 2017 8:07 pm
Dom Nov 19, 2017 7:13 pm
Dom Nov 19, 2017 7:01 pm
Dom Nov 19, 2017 6:43 pm
Dom Nov 19, 2017 6:15 pm
Dom Nov 19, 2017 5:13 pm
Dom Nov 19, 2017 4:21 pm
Dom Nov 19, 2017 2:43 pm
Dom Nov 19, 2017 1:26 pm
Dom Nov 19, 2017 4:10 am
Dom Nov 19, 2017 2:00 am
Sab Nov 18, 2017 10:35 pm
Sab Nov 18, 2017 5:50 pm
Sab Nov 18, 2017 1:30 pm
Sab Nov 18, 2017 10:30 am
Sab Nov 18, 2017 7:29 am
Sex Nov 17, 2017 10:05 pm
Sex Nov 17, 2017 5:10 pm
Sex Nov 17, 2017 4:43 pm
Sex Nov 17, 2017 3:20 pm
Sex Nov 17, 2017 2:01 pm
Sex Nov 17, 2017 11:46 am
Sex Nov 17, 2017 8:33 am
Sex Nov 17, 2017 12:31 am
Qui Nov 16, 2017 11:18 pm
Qui Nov 16, 2017 11:12 pm
Qui Nov 16, 2017 10:48 pm
Qui Nov 16, 2017 10:47 pm
Qui Nov 16, 2017 10:46 pm
Qui Nov 16, 2017 10:20 pm
Qui Nov 16, 2017 10:15 pm
Qui Nov 16, 2017 10:09 pm
Qui Nov 16, 2017 8:13 pm
Qui Nov 16, 2017 8:10 pm
Qui Nov 16, 2017 8:07 pm
Qui Nov 16, 2017 7:56 pm
Qui Nov 16, 2017 5:39 pm
Qui Nov 16, 2017 5:21 pm
Qui Nov 16, 2017 3:33 pm
Qui Nov 16, 2017 2:56 pm
Qui Nov 16, 2017 1:37 pm
Qui Nov 16, 2017 1:20 pm
Qui Nov 16, 2017 11:24 am
Qua Nov 15, 2017 9:32 pm
Qua Nov 15, 2017 9:00 pm
Unoog
PatifeCraft
Regis garcia
matheus1415
recagonlei
recagonlei
recagonlei
ffabim
Fagner
Felipe Costa
MarcosSchultz
recagonlei
TylerDurden
felipehobs1
Zecandy
Gazoles
dazentt55
dimmuo
azool
John Rambo
recagonlei
EricKBMS
oilson
Felipe Costa
dstaroski
Phph09
DUT
Phph09
gabrielraphael
glauco
John Rambo
junkflash30
glauco
recagonlei
MarcosSchultz
Callyde Jr
Ronnisz
Callyde Jr
Phph09
rafaelllsd
RW.
recagonlei
recagonlei
dimmuo
glauco
Phph09
DUT
junkflash30
DUT
ronito
recagonlei
DUT
DUT
Phph09
Phph09
rafaelllsd
glauco
DUT
RW.
otavio00augusto
DUT
DUT
DUT
jamaisfiih
dimmuo
jamaisfiih
Zecandy
DUT
Phph09
Phph09
jamaisfiih
Josivaldo Augusto
BRGC
MRX
recagonlei
recagonlei
sabbath
recagonlei
luiz12345
dstaroski
rafaelllsd
recagonlei
rafaelllsd
recagonlei
recagonlei
recagonlei
PauloFR
PauloFR
PauloFR
Diego Felix
ronito
ronito
Phph09
recagonlei
jamaisfiih
MRX
dstaroski
rafaelllsd
ronito

[TUTORIAL] IA Simples Parte 2 (Atirar)

Ver o tópico anterior Ver o tópico seguinte 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
Programador

Masculino PONTOS : 707
REPUTAÇÃO : 60
Idade : 15
Áreas de atuação : Unity: Programação JavaScript e C#.
Programação: Python, C++, Java, HTML .

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