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:
[TUTORIAL] Unity 5.5 - Splash Screen
SOU MODELADOR SE TIVER ALGUEM PRECISANDO AI ME CONTATE
Como bloquear rotação em um eixo do objeto?
Como adicionar todos materiais de um Obj em um Array ou Lista?
PopUp bloqueando versões antigas do jogo
[____ QUAL A OPINIÃO DE VOCÊS SOBRE O FÓRUM? ____]
[TUTORIAL] Sistema de PORTAS e CHAVES
Movimentação 3D View Blender
Som não funciona no IOS
Requisitos de hardware para Post Processing
Imagem Aparecer como pergunta
Aparecer item comprado
Por que a UI da esse "BUG"?
Zerar os tempos do Cronometro Unity
Ajuda na unity
Girar personagem no próprio eixo usando joystick virtual
Problema com Esqueleto do personagem
PRESSIONAR BOTÃO TOUCH NO ANDROID SERÁ O MESMO QUE PRESSIONAR UMA TECLA DO TECLADO REAL
Quanto Devo Cobrar Por Um Pacote De Modelos 3D ?
Script de Contagem Regressiva
Ajuda com o codigo.
Como acessar uma variável de um script utilizando como parâmetro uma variável nomescript
CRIEI MEU PRIMEIRO JOGO! 1 ANO DE TRABALHO!
Como eu faço pra poder interagir apenas uma vez com um objeto de luz?
MOVIMENTAÇAO DE UM CUBO
Duvida sobre materiais e textura
Super Husky - meu jogo
Duvida sobre Unity
[Em Desenvolvimento] Battles of Worlds
Dúvida de imagem sobre realidade aumentada
Converter string em virgula em float (decimal)
[TUTORIAL] Como usar FREE EASY CRIATURA CONTROLE IA
Duvida em relação processo de geração de receita
Preciso de ajuda com GetButtonDown with Axis
Me ajudem por favor
Detectando Colisão da Arma com o Inimigo
Como posiciono meu interestial admob pra aparecer apenas quando o personagem morrer?
Como eu faria pra ter uma animação diferente para cada lado em um jogo de plataforma 2D?
JOGO DE CARRO EM 2D E PRECISO DE AJUDA EM SCRIPT QUE VAI PRA FRENTE E PRA TRAZ
[RESOLVIDO] Abrir Tampa Ao Apertar o Botão do Mouse
Problemas com .blend para unity
Assetion faled on expression: SUCCEEDED(hr)´
[RESOLVIDO] Raycast que seque o player
OBJETO CONTINUAR FLUTUANDO TENDO RAGDOLL
[TUTORIAL] Roleta de Premios
COMO INTRODUZO O NPC NO VEÍCULO UTILIZANDO O MS VEHICLE SYSTEM?
Duvida - Tilemap
[TUTORIAL] Salvar a última posição do personagem ao trocar de cena
Sistema de codigos utilizando PlayerPrefs
[Duvida] Jogo Futebol - Fisica
[RESOLVIDO] Visual Studio não se auto-completa
[RESOLVIDO] Não consigo somar o PlayerPrafs do meu game
[RESOLVIDO] AJUDA COM SCRIPT COLETAR 8 PEÇAS PARA ABRIR PORTA
Conta desenvolvedor android
[RESOLVIDO] Criando terreno para mobile
SnowFall
Erro no Script
AJUDA COM PROBLEMA QUANDO INIMIGO MORRE
[Duvida] Como Edito uma animação do Mixamo ?
Sea Ruler
Tem como texturizar apenas uma face do cubo no Unity?
[RESOLVIDO] Light moba style
[RESOLVIDO] Problema com script básico
Por que o unity não está abrindo? Grizzly 2.3.30? Request failed?
[DÚVIDA] Fazer um zumbi..
[RESOLVIDO] Como Fasso Para O HingeJoint Virar em Duas Direçoes?
[RESOLVIDO] Obter um valor ne uma lista
Duvidas sobre Programação, Banco de Dados, PHP/XML em Unity, Json ou PlayerPrefs?
[RESOLVIDO] Quando dou BAKE na cena, as sombras dos objetos somem!
SkyBox Lerp
Como fazer pro meu tiro matar o inimigo?
[ARTIGO] Inteligência Artificial para Jogos
[TUTORIAL] Unity 5 - Wheel Collider, veículos, suspensão realista.
dança
Caixa de notificações
SCRIPT DE INTELIGENCIA ARTIFICIAL PARA ZUMBI, DESVIAR DE OBJETOS E ATACAR JOGADOR
Script faz a função tudo certo na unity, já quando gero apk o script não faz a função
[RESOLVIDO] Script não funciona corretamente, qual seria o problema?
Qual o nome das funções prontas no Unity (transform, linecast)
Arquivos com Casa, arvores, Gramas, Objetos3d Etc...
Novo App Maquininha Virtual
Shader com efeito de dissolução
[TUTORIAL] Desenvolvendo um jogo de quebra-cabeças
[TUTORIAL] Sistema de DIA E NOITE completo, com luzes noturnas e SISTEMA DE NUVENS
Formação de Equipe ( Favela Killer)
Movimentação com RigidBOdy2D dando travadinhas
Como Configurar a Unity, para que modifique o seu Eixo?
Pegar Valor int, Como?
POSSO PUBLICAR MEUS JOGOS USANDO VERSÃO GRATUITA DESSA ENGINE...
Parceria em game 2D
[TUTORIAL] Sistema de Lanterna com Pilhas
caixa de som
Pegar objeto tocado em dispositivo mobile
onde esta o sun shaft na unity 2019?
Retirar Limites Do HINGE JOINT
Hinge Joint
[DÚVIDA] Modelo do Sketchup não importa corretamente
probleminha ao usar o Platform Effector2d
Touch para 2 Jogadores
Hoje à(s) 2:01 am
Ontem à(s) 6:02 pm
Ontem à(s) 2:43 pm
Ontem à(s) 2:16 pm
Ontem à(s) 1:16 pm
Ontem à(s) 4:33 am
Ontem à(s) 4:03 am
Sab Jun 15, 2019 5:52 pm
Sab Jun 15, 2019 3:16 pm
Sab Jun 15, 2019 2:43 pm
Sab Jun 15, 2019 1:43 pm
Sab Jun 15, 2019 12:01 am
Sex Jun 14, 2019 10:47 pm
Sex Jun 14, 2019 9:39 pm
Sex Jun 14, 2019 9:20 pm
Sex Jun 14, 2019 8:56 pm
Sex Jun 14, 2019 8:31 pm
Sex Jun 14, 2019 8:18 pm
Sex Jun 14, 2019 8:12 pm
Sex Jun 14, 2019 7:09 pm
Sex Jun 14, 2019 6:26 pm
Sex Jun 14, 2019 8:59 am
Sex Jun 14, 2019 5:25 am
Qui Jun 13, 2019 7:42 pm
Qui Jun 13, 2019 7:33 pm
Qui Jun 13, 2019 1:02 pm
Qua Jun 12, 2019 8:26 pm
Qua Jun 12, 2019 5:27 pm
Qua Jun 12, 2019 3:54 pm
Qua Jun 12, 2019 3:01 pm
Qua Jun 12, 2019 2:50 pm
Qua Jun 12, 2019 12:13 pm
Ter Jun 11, 2019 5:26 pm
Ter Jun 11, 2019 3:47 pm
Ter Jun 11, 2019 3:43 pm
Ter Jun 11, 2019 8:13 am
Seg Jun 10, 2019 12:24 pm
Dom Jun 09, 2019 10:46 pm
Dom Jun 09, 2019 3:19 pm
Dom Jun 09, 2019 2:21 pm
Dom Jun 09, 2019 12:04 pm
Dom Jun 09, 2019 10:42 am
Sab Jun 08, 2019 11:56 pm
Sab Jun 08, 2019 10:52 pm
Sab Jun 08, 2019 10:33 pm
Sab Jun 08, 2019 10:06 pm
Sab Jun 08, 2019 9:41 pm
Sab Jun 08, 2019 8:40 pm
Sab Jun 08, 2019 8:32 pm
Sab Jun 08, 2019 2:00 pm
Sab Jun 08, 2019 12:50 pm
Sab Jun 08, 2019 8:59 am
Sex Jun 07, 2019 8:21 pm
Sex Jun 07, 2019 3:50 pm
Sex Jun 07, 2019 3:39 pm
Qui Jun 06, 2019 10:47 pm
Qui Jun 06, 2019 2:48 pm
Qua Jun 05, 2019 1:48 pm
Qua Jun 05, 2019 10:43 am
Ter Jun 04, 2019 6:35 pm
Ter Jun 04, 2019 3:20 pm
Ter Jun 04, 2019 11:20 am
Seg Jun 03, 2019 3:49 am
Seg Jun 03, 2019 2:31 am
Dom Jun 02, 2019 11:53 pm
Dom Jun 02, 2019 10:01 pm
Dom Jun 02, 2019 12:44 pm
Sab Jun 01, 2019 2:42 pm
Sab Jun 01, 2019 4:32 am
Sex Maio 31, 2019 8:26 pm
Sex Maio 31, 2019 4:02 pm
Sex Maio 31, 2019 12:20 pm
Qui Maio 30, 2019 7:34 pm
Qui Maio 30, 2019 4:29 pm
Qui Maio 30, 2019 4:27 pm
Qui Maio 30, 2019 4:26 pm
Qua Maio 29, 2019 3:42 pm
Qua Maio 29, 2019 10:15 am
Ter Maio 28, 2019 5:40 pm
Ter Maio 28, 2019 2:49 pm
Ter Maio 28, 2019 1:47 pm
Ter Maio 28, 2019 9:37 am
Ter Maio 28, 2019 9:31 am
Ter Maio 28, 2019 9:22 am
Ter Maio 28, 2019 8:31 am
Seg Maio 27, 2019 4:53 pm
Seg Maio 27, 2019 3:22 pm
Seg Maio 27, 2019 2:42 pm
Dom Maio 26, 2019 5:58 pm
Dom Maio 26, 2019 11:44 am
Dom Maio 26, 2019 2:58 am
Dom Maio 26, 2019 2:54 am
Sab Maio 25, 2019 10:23 pm
Sab Maio 25, 2019 9:57 pm
Sab Maio 25, 2019 9:56 pm
Sab Maio 25, 2019 9:54 pm
Sab Maio 25, 2019 9:46 pm
Sab Maio 25, 2019 9:31 pm
Sab Maio 25, 2019 9:29 pm
henriquegusbr
Socates
LúcioHenrique098
ffabim
Diguinho
MarcosSchultz
MarcosSchultz
lesgoy
fjosmoreno
guimaraf
MayLeone
Magnatah
glauco
Magnatah
Magnatah
Magnatah
Magnatah
Magnatah
Magnatah
Magnatah
artplayer
Tegh
fluminintia
diegopds
diegopds
ronigleydson
GameLACK
poyser
Dom3000
numb123
numb123
Unidade3d5
poyser
velho rabugento
JohnRambo
marlok3d
slevimk
mathhBR
Magnatah
williangamesbr4021
Magnatah
Giuliano Neto
hendrick22
MarcosSchultz
Diguinho
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MayLeone
LúcioHenrique098
yurinogueira
yurinogueira
JohnRambo
JohnRambo
NKKF
artplayer
Diego Felix
diegopds
NKKF
ronigleydson
erifmeurer
yurinogueira
luiz12345
gcs13
williangamesbr4021
hendrick22
artplayer
BrazaTattoo
Brian Victor
JohnRambo
Callyde Jr
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MayLeone
glauco
Tegh
glauco
fecirineu
fabricadegame
fabricadegame
fabricadegame
thales.ulisses
MarcosSchultz
glauco
Tegh
GameLACK
Priste_Hell
MarcosSchultz
MarcosSchultz
Marcelo Santos
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz

Detectando Colisão da Arma com o Inimigo

Ir em baixo

DÚVIDA Detectando Colisão da Arma com o Inimigo

Mensagem por marlok3d em Seg Jun 10, 2019 7:30 am

Bom dia! 

Estou com um problema no meu jogo 2D.

Tenho um objeto pai que é o personagem jogável, este objeto possui os seus filhos que são as armas (que possuem seus próprios colisores e que são ativados somente quando é executada uma animação de ataque). Estou com dois problemas que não consigo resolver.

1. Ao atacar, o colisor da arma está colidindo com objetos que somente o personagem deveria colidir, mesmo eu configurando as armas para colidir somente com a tag "inimigos". Por exemplo, se tem um item coletável na cena, e eu der uma espadada nele, ele será coletado. Eu gostaria que o item fosse coletado somente quando entrar em colisão direta com o personagem. Obs. O Script do personagem está usando a função OnTriggerEnter2D para detectar a colisão com a tag "coletaveis".

2. Se o ataque com as armas acertam os inimigos, o personagem também recebe dano. Obs. O script do inimigo está usando a função OntriggerEnter2D para detectar a colisão com a tag "arma" e somente as armas estão configuradas com esta tag.

Obrigado!

marlok3d
Iniciante
Iniciante

PONTOS : 218
REPUTAÇÃO : 0
Respeito as regras : Detectando Colisão da Arma com o Inimigo WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Detectando Colisão da Arma com o Inimigo

Mensagem por yurinogueira em Seg Jun 10, 2019 7:45 am

Poderia mostrar o script?

yurinogueira
Membro
Membro

PONTOS : 469
REPUTAÇÃO : 6
Respeito as regras : Detectando Colisão da Arma com o Inimigo WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Detectando Colisão da Arma com o Inimigo

Mensagem por marlok3d em Ter Jun 11, 2019 8:13 am

Código:
//Script do Player
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class playerScript : MonoBehaviour
{
    public bool getHit = false;
    private _GameController _GameController;
    private Animator playerAnimator;
    private Rigidbody2D playerRb;
    private SpriteRenderer sRender;

    [Header("Mecanica do Personagem")]
    public int vidaAtual;
    public int vidaPersonagem;
    public Transform groundCheck; //objeto responsável por detectar se o personagem está sobre uma superfície
    public LayerMask whatIsGround;//indica o que é superfície para o teste do grounded 
    public float startSpeed; //velocidade inicial do personagem
    public float speed; //velocidade de movimento do personagem
    public float jumpForce; //Força aplicada para o pulo do personagem
    public bool jumping; //verifica se o personagem está pulando     
    public bool grounded; //indica se o personagem está pisando em alguma superfície
    public bool attacking; // indica se o personagem está atacando   
    public bool lookLeft;  //indica se o personagem está virado para esquerda
    public int idAnimation; //indica o ID da animação   
    private float h, v; //variaveis de movimento horizontal e vertical
    public Collider2D standing, crounching; //colisor em pé e colisor agaixado   
    public Transform hand;
    private Vector3 dir = Vector3.right; //cria uma variavel "direção" e indica que o valor inicial dela é "direita"
     
    //Sistema de Ataque
    public GameObject[] armas;

    // Start is called before the first frame update
    void Start()
    {
        vidaAtual = vidaPersonagem;
        speed = startSpeed;
        _GameController = FindObjectOfType(typeof(_GameController)) as _GameController;
        playerAnimator = GetComponent<Animator>(); // a variavel playerAnimator recebe o componente Animator
        playerRb = GetComponent<Rigidbody2D>(); // a variavel playerRb recebe o componente Rigidbody2D
        sRender = GetComponent<SpriteRenderer>();
        foreach (GameObject o in armas)
        {
            o.SetActive(false); //desabilita os colisores das armas ao iniciar o jogo
        }
   
    }

    public void FixedUpdate()
    {
        grounded = Physics2D.OverlapCircle(groundCheck.position, 0.02f, whatIsGround); //cria um circulo para detectar colisão com a layer whatisGround
        playerRb.velocity = new Vector2(h * speed, playerRb.velocity.y);
    }

    // Update is called once per frame
    void Update()
    {
        h = Input.GetAxisRaw("Horizontal"); // Esquerda e Direita
        v = Input.GetAxisRaw("Vertical"); //Cima e Baixo

        jumping = !grounded;

        //Controle do Personagem
        if (h > 0 && lookLeft == true && attacking == false) //se apertar para direita e o personagem estiver olhando para esquerda inverte a posição
        {
            flip();
        }
        else if (h < 0 && lookLeft == false && attacking == false) //se apertar para esquerda e o personagem estiver olhando para direita inverte a posição
        {
            flip();
        }
        if (v < 0) //se estiver apertando para baixo aplica a animação de agaichado
        {
            idAnimation = 2;
            if (grounded == true) //se estiver abaixo e pisando no chão ele não pode se mover na horizontal
            {
                h = 0;
            }
        }
        else if (h != 0) //se estiver apertando para esquerda ou direita aplica a animação de andando
        {
            idAnimation = 1;
        }
        //se estiver parado aplica a animação de Idle
        else
        { 
            idAnimation = 0;
        }   
   
        if (Input.GetButtonDown("Fire1") && attacking == false)
        {
            playerAnimator.SetTrigger("atack");
        }       
       
        //se o personagem estiver atacando, ele não pode se movimentar
        if (attacking == true)
        {
            h = 0;
        }     
        if (getHit == true) //se estiver apanhando
        {
            h = 0;
        }

        //Pulo
        if (Input.GetButtonDown("Jump") && grounded == true && attacking == false)
        {
            playerRb.velocity = Vector2.up * jumpForce;
        }     
     
        //Ativando Animações
        playerAnimator.SetBool("grounded", grounded); //Utiliza a vartiavel Grounded para armazenar um valor na variavel do animator "grounded"
        playerAnimator.SetInteger("idAnimation", idAnimation);
        playerAnimator.SetFloat("speedY", playerRb.velocity.y); 
    }

    void atack(int atk)
    {
        switch (atk)
        {
            case 0:
                attacking = false;
                armas[2].SetActive(false); //desabilita o collider da arma ao terminar o atack
                break;

            case 1:
                attacking = true;
                break;
        }
    }
     
    void flip()
    {
        lookLeft = !lookLeft; //inverte o valor da variavel lookLeft
        float x = transform.localScale.x;
        x *= -1; //inverte o sinal do escale x (- +)
        transform.localScale = new Vector3(x, transform.localScale.y, transform.localScale.z);

        dir.x = x; // muda a direção do raycast usado na função interagir() da esquerda para direita ou vice versa   
    }
 
    //FUNÇÕES PARA TRATAR TRIGGERS

    private void OnTriggerEnter2D(Collider2D col) // executada uma vez ao entrar em colisão
    {
        switch (col.gameObject.tag)
        {
            case "Coletaveis":

                col.gameObject.SendMessage("coletar", SendMessageOptions.DontRequireReceiver); http://SendMessageOptions.DontRequireReceiver evita erros caso o objeto não tenha a função

                break;

            case "inimigo":
                if (getHit == false)
                {
                    getHit = true;
                    vidaAtual = -1;
                    playerAnimator.SetTrigger("hit");//chama a aninação de hit                 
                }
                break;
        }
       

    }

    private void OnTriggerEstay2D(Collider2D col)
    {
        switch (col.gameObject.tag)
        {
            case "Coletaveis":

                col.gameObject.SendMessage("coletar", SendMessageOptions.DontRequireReceiver); http://SendMessageOptions.DontRequireReceiver evita erros caso o objeto não tenha a função

                break;

            case "inimigo":
                if (getHit == false)
                {
                    getHit = true;
                    vidaAtual = -1;
                    playerAnimator.SetTrigger("hit");//chama a aninação de hit                 
                }
                break;
        }   
    }

    private void OnTriggerExit2D(Collider2D col) // executada uma vez ao sair da colisão
    {
   
    }

    void controleArma(int id)
    {
        foreach (GameObject o in armas)
        {
            o.SetActive(false); //desabilita os colisores das armas
        }

        armas[id].SetActive(true); //ativa somente o collider correspondente ao frame atual
    }
}

Código:
//Script do Inimigo
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class controleInimigo : MonoBehaviour

    private Animator animator;

    [Header("Configuração de Vida")]
    public int vidaInimigo;
    public int vidaAtual;

    [Header("Configuração da IA")]   
    public bool died;
    private bool getHit;
    public float tempoDeInvulnerabilidade;

    // Start is called before the first frame update
    void Start()
    {
        animator = GetComponent<Animator>();
        vidaAtual = vidaInimigo;
    }

    // Update is called once per frame
    private void Update()
    {
        if (vidaAtual <= 0)
        {
            died = true;
            Destroy(this.gameObject, 2);
        }
    }

    private void OnTriggerEnter2D(Collider2D col)
    {
        switch (col.gameObject.tag)
        {
            case "arma":
                if (getHit == false)
                {
                    getHit = true;
                    vidaAtual = vidaAtual - 1;
                    animator.SetTrigger("hit");//chama a aninação de hit 
                    StartCoroutine("invulneravel");
                }
            break;
        }

    }
    IEnumerator invulneravel()
    {
        yield return new WaitForSeconds(tempoDeInvulnerabilidade);
        getHit = false;
    }
}


marlok3d
Iniciante
Iniciante

PONTOS : 218
REPUTAÇÃO : 0
Respeito as regras : Detectando Colisão da Arma com o Inimigo 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