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:
Manter a última posic de objetos após sair e voltar de cena
Alguem me ajuda em um script!
Camera
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
Erros ao tentar build para android!
Problema com terreno!
Teleporte do player com outro objeto!
Media entre pontos e tempo!
Anti Pirataria
Vídeo player não mostra nada
(Duvida)Sistema de estrelas
Filhos dos filhos
Construção de um save das configurações e ir pro jogo com as config certas
Duvida na hora da POSTAGEM na PLAY STORE
Auto posicionar objeto
Como dar um clique em um determinado botão através de Script
Como faço as personagens causarem dano (e vice-versa)?
Dúvida no uso de loop no Unity
Duvida em Python
Preciso de Programadores, Músicos e Modeladores.
Como usar LOD Group para usar no Mass Place Trees
Como Criar um Sistema de Coop? (Photon)
Fighter camera 3D tekken style, boxing style
Erro no Script- "The script needs to derived from MonoBehavior"
[TUTORIAL] Fixed Joint e Spring Joint - Unity 5
Música Grátis
Not a Dream - Formação de Equipe
Como deixar o código mais dinâmico
Duvida Shader para celular
Ideia para algum jogo
Aplicativo não instalado
Tela cheia em android
duvida de raytracing
[Em Desenvolvimento] Battles of Worlds
[Formação de Equipe] Battles of Worlds
Box Collider 2D Pausando o Jogo.
Como fazer um sistema para conectar objetos?
Jogos Pagos e proteção
[DÚVIDA] sair som do objeto ao pressionar uma tecla
Seleção de personagens sem usar ele como prefab
Duvida Postagem na Play Store
Fazer o player rodar a animação até o final
Ofuscar
Preciso de Ajuda Estou a desenvolver um projeto!
[TUTORIAL] Joystick vistual para mobile
desativa objecto
IDE editor C#
Porque o meu BoxCollider2D não desativa?
Sistema De Skin Na Unity
erro ao abrir projeto na unity 2019.2.0
Jogador Flicando no chão
Mostrar eventos no Inspector
[TUTORIAL] Menu Pause AVANÇADO (Unity 5.3 ou superior)
Algumas Maneiras de Ganhar Dinheiro Com o Blender e Modelagem 3D
[TUTORIAL] Salvar SCORE e substituir caso faça mais pontos.
aplicativo travando
e ai galera to tendo poblema com wheel collider
Shader Editor travando a cada alteração nas propriedades
Tela inteira no Android
Scale Factor de Modelos Faz Diferença Na Performacer do Jogo?
Picos de Queda de FPS!
ERRO NA UNITY, AJUDEM POR FAVOR
Como fazer uma tecla ser pressionado x vezes.
Vamos criar uma comunidade no Discord!
[Projeto em Andamento] Favela Combat - Multiplayer online (Android & iOS)
Como ativar e desativar o Box Collider utilizando o RayCast.
[RESOLVIDO] Player 2D girando ao descer de plataforma
Road Life - Jogo Mundo Aberto RPG
Como parar o spawn aleatório?
[RESOLVIDO] Pêndulo 2D
[RESOLVIDO] Como faço para clicar em um objeto e visualizar, girar...
Crio Ícones Personalizados Para Jogos
Metadados recusados AppleConnect [Screenshots]
Ajuda na criação de um jogo de Xadrez 3D
> Posso achar Bugs facilmente <
Meu Jogo inspirado em resident evil 2 remake
Unity + Photon 2
[RESOLVIDO] tira uma duvida
[TUTORIAL] Campo de visão dos inimigos (Enemy FOV) com Raycast ou OverlapSphere
Contagem de tempo em classes abstratas
Erro ao compilar em webGL
[RESOLVIDO] Animação na Movimentação (Parado, Andar e Correr)
[RESOLVIDO] Parâmetro "Out" não existe (Duvida com Script)
Duvida de movimentação de câmera 2D (Sem personagem)
[RESOLVIDO] Colocando meu jogo para 64 bits
(Animator) Animação bugada no animator!
[TUTORIAL] CONFIGURANDO O UNITY PARA COMPILAR PARA ANDROID
[RESOLVIDO] Porque o Vector2.Distance não está funcionando?
[TRETA BR] GAME QUASE FINALIZADO !
Algumas perguntas sobre cenas e transições
Sistema de "Avaliação" / Probabilidade / Notas
Problema com boxes colliders
Dúvida quando a interferência de uma colisão em um sistema de chute e passe
Bloom no Android
Duvidas ao transformar um GameObjeto em Prefab
Como fazer a câmera voltar à posição (eixo) inicial após largar o botão de mira?
[RESOLVIDO] Som nos números na contagem regressiva
[RESOLVIDO] Como fazer para voltar para a primeira scene?
Dicas de como implementar um sistema de colocação de texturas
Ontem à(s) 11:30 pm
Ontem à(s) 8:22 pm
Ontem à(s) 8:06 pm
Ontem à(s) 4:29 pm
Ontem à(s) 4:10 pm
Ontem à(s) 3:41 pm
Ontem à(s) 1:32 pm
Ontem à(s) 3:01 am
Ontem à(s) 1:40 am
Ontem à(s) 1:30 am
Seg Set 16, 2019 11:03 pm
Seg Set 16, 2019 8:21 pm
Seg Set 16, 2019 5:37 pm
Seg Set 16, 2019 4:07 pm
Seg Set 16, 2019 4:11 am
Seg Set 16, 2019 2:36 am
Seg Set 16, 2019 12:22 am
Dom Set 15, 2019 11:21 pm
Dom Set 15, 2019 8:29 pm
Dom Set 15, 2019 5:52 pm
Dom Set 15, 2019 4:41 pm
Dom Set 15, 2019 3:52 pm
Dom Set 15, 2019 12:42 pm
Dom Set 15, 2019 12:41 pm
Dom Set 15, 2019 11:20 am
Dom Set 15, 2019 1:58 am
Dom Set 15, 2019 12:08 am
Sab Set 14, 2019 8:45 pm
Sab Set 14, 2019 7:55 pm
Sab Set 14, 2019 7:07 pm
Sab Set 14, 2019 7:06 pm
Sab Set 14, 2019 7:05 pm
Sab Set 14, 2019 6:58 pm
Sab Set 14, 2019 5:00 pm
Sab Set 14, 2019 4:57 pm
Sab Set 14, 2019 1:49 pm
Sab Set 14, 2019 12:37 am
Sex Set 13, 2019 10:58 pm
Sex Set 13, 2019 10:42 pm
Sex Set 13, 2019 8:58 pm
Sex Set 13, 2019 8:33 pm
Sex Set 13, 2019 8:28 pm
Sex Set 13, 2019 8:19 pm
Sex Set 13, 2019 8:17 pm
Sex Set 13, 2019 8:08 pm
Sex Set 13, 2019 8:06 pm
Sex Set 13, 2019 8:04 pm
Sex Set 13, 2019 2:40 pm
Sex Set 13, 2019 5:02 am
Sex Set 13, 2019 4:59 am
Sex Set 13, 2019 4:50 am
Sex Set 13, 2019 4:41 am
Sex Set 13, 2019 4:26 am
Sex Set 13, 2019 4:19 am
Sex Set 13, 2019 4:17 am
Sex Set 13, 2019 3:53 am
Sex Set 13, 2019 3:44 am
Sex Set 13, 2019 3:35 am
Sex Set 13, 2019 3:34 am
Sex Set 13, 2019 3:06 am
Sex Set 13, 2019 2:44 am
Sex Set 13, 2019 2:40 am
Sex Set 13, 2019 2:31 am
Qui Set 12, 2019 9:46 pm
Qui Set 12, 2019 9:46 pm
Qui Set 12, 2019 4:43 pm
Qui Set 12, 2019 3:22 pm
Qui Set 12, 2019 2:50 pm
Qua Set 11, 2019 10:05 pm
Qua Set 11, 2019 9:14 pm
Qua Set 11, 2019 1:16 pm
Qua Set 11, 2019 11:58 am
Qua Set 11, 2019 9:03 am
Qua Set 11, 2019 1:45 am
Ter Set 10, 2019 10:52 pm
Ter Set 10, 2019 6:28 pm
Ter Set 10, 2019 10:12 am
Ter Set 10, 2019 12:38 am
Seg Set 09, 2019 10:04 pm
Seg Set 09, 2019 6:08 pm
Seg Set 09, 2019 2:57 pm
Sab Set 07, 2019 7:23 pm
Sab Set 07, 2019 1:14 pm
Sab Set 07, 2019 12:12 pm
Sex Set 06, 2019 9:06 pm
Sex Set 06, 2019 11:44 am
Qui Set 05, 2019 11:30 pm
Qui Set 05, 2019 10:57 pm
Qui Set 05, 2019 6:26 pm
Qua Set 04, 2019 11:38 pm
Qua Set 04, 2019 9:02 pm
Ter Set 03, 2019 4:42 pm
Ter Set 03, 2019 2:52 pm
Ter Set 03, 2019 12:04 pm
Ter Set 03, 2019 10:14 am
Ter Set 03, 2019 4:26 am
Seg Set 02, 2019 9:02 pm
Seg Set 02, 2019 6:27 pm
Seg Set 02, 2019 5:40 pm
lesgoy
gutovic29
Fagner
MarcosSchultz
Daniel Dória
Fagner
lesgoy
danielPedra90
RafaelSquid1
ffabim
poyser
NKKF
lucaspoiob
gtcmcsgo
MayLeone
lesgoy
Swordsdragon
joffersoju
victorgx22
LardosJogos
tr4ssh
deikson
Josh123
Samuelostgamer
welberpv2022
JohnRambo
LardosJogos
Hamassfall
SteveRogers
LúcioHenrique098
lesgoy
lesgoy
SteveRogers
Dom3000
Dom3000
Newba
henriquegames501
guimaraf
gcs13
garnios
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
NKKF
MayLeone
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
JohnRambo
dkrazor
recagonlei
CyberPh4ntom
NKKF
TecnoGames
Hamassfall
c4stor
Magnatah
numb123
JohnRambo
LardosJogos
RafaelSquid1
billybmx
katymarques
hao3726
MayLeone
Socates
LardosJogos
Newba
SteveRogers
garnios
JohnVitor
garnios
Hamassfall
ruanzikaad
Magnatah
Mancha
SteveRogers
gabrimo
lesgoy
garnios
SteveRogers
garnios
SteveRogers
SteveRogers

[TUTORIAL] IA Simples

Ir em baixo

TUTORIAL [TUTORIAL] IA Simples

Mensagem por Matrirxp em Qua Mar 22, 2017 12:17 am

Eae galera.
Resolvi fazer um tutorial bem simples e rápido aqui para vocês.
Como ja esta no titulo vou ensinar a fazer uma ia simples de um inimigo. 
Então Vamos la:

Primeira passo:
Vamos criar um terreno,depois coloque um FirstPersonalControler (Nosso Player) e crie um inimigo no meu caso o inimigo vai ser um cubo.


Segundo passo:
Crie uma script C#, essa é a script do inimigo IA.

Vamos criar 3 variáveis 

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


 // Use this for initialization
 void Start () {
 
 }
 
 // Update is called once per frame
 void Update () {
 
 }
}


Primeira coisa a fazer e setar um alvo para o inimigo e fazer ele mirar na direção dele;
Vamos usar um Quaternion para isso:

Crie uma variável tipo Transform com o nome alvo e uma tipo Quaternion:

Código:
public Transform alvo;//Mira
Quaternion alvoroteition;
agora no nosso Void update coloque:

Código:
void Update () {

alvoroteition = Quaternion.LookRotation(alvo.position - transform.position, Vector3.up);

transform.rotation = Quaternion.Slerp(transform.rotation, alvoroteition , Time.deltaTime * 4);
  
}

Isso vai fazer nosso inimigo mirar no nosso player, mas ficaria melhor se agente limita-se o campo de visão dele, vamos fazer assim:

Crie uma variável: float campo;   

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 > 2 & campo < 10){

alvoroteition = Quaternion.LookRotation(alvo.position - transform.position, Vector3.up);
transform.rotation = Quaternion.Slerp(transform.rotation, alvoroteition , Time.deltaTime * 4);

    }  

}


Proto agora nosso inimigo só vai mirar no player se a distancia entre eles for menor que 10.

Terceiro passo:
Seguir o player.
vamos usar um AddRelativeForce, assim:

Crie uma variável: Rigidbody rb;

No Void Start vamos pegar o componente Rigidbody:

Código:
Rigidbody rb;

void Start(){
rb = GetComponent<Rigidbody> ();
}

Dentro do nosso 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 > 2 & campo < 10){
 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);

 }  

 }
 
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 Transform alvo;
   Rigidbody rb;
   Quaternion alvoroteition;
   float campo;

   // Use this for initialization
   void Start () {
      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 > 2 & campo < 10){
         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);

      }  

   }


}



Nossa IA ja pode mirar e seguir o player mas na segunda parte desse tutorial vamos fazer ela atirar também.
É isso galera espero que tenham gostado.

Referencias:


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
Matrirxp
Matrirxp
ProgramadorMaster

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

Respeito as regras : [TUTORIAL] IA Simples  Aad8pUi

Ver perfil do usuário https://www.youtube.com/channel/UCkngjEDMx9y_vW0t7Io05gg

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] IA Simples

Mensagem por Zecandy em Qua Mar 22, 2017 1:50 pm

Parabéns cara, pelo tutorial e pela iniciativa me ajudou aqui abss.
Zecandy
Zecandy
Programador

Masculino PONTOS : 1614
REPUTAÇÃO : 155
Idade : 37
Respeito as regras : [TUTORIAL] IA Simples  WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] IA Simples

Mensagem por zZAndersonZz em Qua Mar 22, 2017 3:53 pm

Muito bem explicado, dá pra entender bem o que cada linha faz. Vou acompanhar e ver como usar no meu no meu jogo.
zZAndersonZz
zZAndersonZz
Avançado
Avançado

Masculino PONTOS : 1312
REPUTAÇÃO : 142
Idade : 22
Respeito as regras : [TUTORIAL] IA Simples  WvDYdlf

Ver perfil do usuário https://github.com/AndersonMarquess

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] IA Simples

Mensagem por Gabriel César O em Qua Mar 22, 2017 7:47 pm

@Matrirxp escreveu:Eae galera.
Resolvi fazer um tutorial bem simples e rápido aqui para vocês.
Como ja esta no titulo vou ensinar a fazer uma ia simples de um inimigo. 
Então Vamos la:

Primeira passo:
Vamos criar um terreno,depois coloque um FirstPersonalControler (Nosso Player) e crie um inimigo no meu caso o inimigo vai ser um cubo.


Segundo passo:
Crie uma script C#, essa é a script do inimigo IA.

Vamos criar 3 variáveis 

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


 // Use this for initialization
 void Start () {
 
 }
 
 // Update is called once per frame
 void Update () {
 
 }
}


Primeira coisa a fazer e setar um alvo para o inimigo e fazer ele mirar na direção dele;
Vamos usar um Quaternion para isso:

Crie uma variável tipo Transform com o nome alvo e uma tipo Quaternion:

Código:
public Transform alvo;//Mira
Quaternion alvoroteition;
agora no nosso Void update coloque:

Código:
void Update () {

alvoroteition = Quaternion.LookRotation(alvo.position - transform.position, Vector3.up);

transform.rotation = Quaternion.Slerp(transform.rotation, alvoroteition , Time.deltaTime * 4);
  
}

Isso vai fazer nosso inimigo mirar no nosso player, mas ficaria melhor se agente limita-se o campo de visão dele, vamos fazer assim:

Crie uma variável: float campo;   

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 > 2 & campo < 10){

alvoroteition = Quaternion.LookRotation(alvo.position - transform.position, Vector3.up);
transform.rotation = Quaternion.Slerp(transform.rotation, alvoroteition , Time.deltaTime * 4);

    }  

}


Proto agora nosso inimigo só vai mirar no player se a distancia entre eles for menor que 10.

Terceiro passo:
Seguir o player.
vamos usar um AddRelativeForce, assim:

Crie uma variável: Rigidbody rb;

No Void Start vamos pegar o componente Rigidbody:

Código:
Rigidbody rb;

void Start(){
rb = GetComponent<Rigidbody> ();
}

Dentro do nosso 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 > 2 & campo < 10){
 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);

 }  

 }
 
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 Transform alvo;
 Rigidbody rb;
 Quaternion alvoroteition;
 float campo;

 // Use this for initialization
 void Start () {
 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 > 2 & campo < 10){
 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);

 }  

 }


}



Nossa IA ja pode mirar e seguir o player mas na segunda parte desse tutorial vamos fazer ela atirar também.
É isso galera espero que tenham gostado.

Referencias:


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
também tem esse vídeo!
Gabriel César O
Gabriel César O
Profissional
Profissional

Masculino PONTOS : 2107
REPUTAÇÃO : 215
Idade : 18
Áreas de atuação : (ESTUDANDO SEGUNDO GRAU), (FUÇANDO NO UNITY)){
Respeito as regras : [TUTORIAL] IA Simples  WvDYdlf

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