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:
Inimigo detecta outro Inimigo.
Instanciar objetos e controla los!!
List
não deixar que exista dois DontDestroyOnLoad
Bug unity android UI
Cronometro par Inimigo como se faz ?
Peso de processamento de modelos 3D
[TUTORIAL] Sistema simples para VOLTAR NO TEMPO, Unity 3D
Passar texturas de Maya para unity
Assets tirando fisica do terreno
teleportar o player quando ele cair fora do mapa
3D Text Material Sobressalente
Passar as texturas do Blender para a Unity
Não consigo alterar "nada" no unity
Erro no SketchUP
Como habilitar um scritpt depois que ele foi desabilitado
Arrastar e conectar
Math Key Puzzle (Disponível na Play Store)
(Duvida) Melhor versão da unity para projetos 3D
Como criar uma Barra de Ataque speed para um personagem
Script não funcionando.
Eixos trocados na movimentação do jogador
Como desenvolver um sistema de colisão sem usar os componentes da Unity?
Collab Arruinando meu Projeto
Oportunidade de Freelancer
Alguém sabe como criar um objeto aleatório
Movimentação de jogador através de animação
Achar objeto que não esta na cena
Chamar um objeto FBX para a cena por meio de um botão
(Dúvida) dificuldade em modelagem e animações
Como faço pra um objeto/item acionar um evento?
Como posso fazer uma barra de vida encher denovo
Textura escura
Animação em texto
Mesh Collider
[FORMAÇÃO DE EQUIPE] PERSONAGENS E ITENS PIXEL ART
Top Tipos de Jogos Mobile Android
Programe seus jogos mesmo sem saber C# (BOLT ⚡)
Dúvida sobre Character Controller
Testadores/ Voluntários - De olho na fake (jogo Educativo)
Ajuda com Cutscene
Ajuda com key em script
BTD(Brazil Tower Defense) WIP
Como criar vários objetos a partir de um? (Unity)
Objeto 3D
Posição bloco/tile endless 2D
Como acessar a função de um outro Script? (Unity)
todo filho herda a tag do pai ?
[TUTORIAL] Como fazer um TELEPORTE
Duvida sobre exceso de declaracao de variaveis publicas.
Como aumentar o tamanho de um objeto no eixo Z por um slider?
Duvida sobre proteção de projeto na unity.
Como jogo o valor de uma Int em uma IEnumerator?
Como faço para desativar o pós-processamento em outra cena
[TUTORIAL] Inteligência artificial, inimigo e AIPoints
Textura no material importado
PHP
Ajuda em Modelo 3D
Como limitar ate onde a câmera do unity2D pode ir?
Standard Assets para UNITY 5 em ".unitypackage"
Como faço pra carregar os itens de uma Cena Para outra?
Joystick mobile
Cenário se reposicionar no eixo z, quando o player se move pelo cenário.
Mudar a cor de um material Alpha Blended por script
como faço para o personagem andar só que no ar?
[TUTORIAL] Teleporte
Ajuda com IA de inimigo
Qual o tutorial mais simples sobre criar um personagem 3d com melee attack?
Colider--Unity
[TUTORIAL] Unity 5 - Como criar o próprio FPS Controller
Como rodar tela de Gameover?
(Duvida) Como criar um sistema de dialogos?
carregar um mapa por .txt
Como obter dados do Grid Layout Group.
Camera em primeira pessoa que mostra o corpo
Plataforma Flutuante
como faço um multiplayer na unity 5?
SCRIPT TIRO - UNITY 3d
Online Shooting Android
Um projeto sem nome ainda (Fazendo nas horas vagas)
[ FIND ME ] Game em Desenvolvimento
[Projeto em Andamento] Favela Combat - Multiplayer online (Android & iOS)
Baixos Brasil - Jogo de Carro Brasileiro!
Riders Of Dungeons - Jogo RPG Souls like
[TUTORIAL] Unity 5 - Wheel Collider, veículos, suspensão realista.
Duvida sobre .asset
Escape from the hospital (Em teste)
Ajuda com gameObject
Ajuda com erro no package de pós-processamento
Shader Graph, mateiral rosa???
FORMACAO DE EQUIPE
Alguem tem script de movimento 2d pronto?
SDK
Unity Banco de Dados
Problema com o Character Controller
Como fazer um game de zumbis de mundo aberto que não seja massante?
como resolver esse bug em um script de troca de personagem?
Alguém me da uma dica de como criar um sistema de chaves
Alguém sabe fazer uma AI para o inimigo seguir o Player em um jogo Top Down
Ontem à(s) 11:06 pm
Ontem à(s) 10:55 am
Dom Abr 11, 2021 3:31 pm
Dom Abr 11, 2021 12:03 am
Sab Abr 10, 2021 7:05 pm
Sab Abr 10, 2021 2:47 pm
Sex Abr 09, 2021 10:11 pm
Sex Abr 09, 2021 5:23 pm
Sex Abr 09, 2021 2:10 pm
Sex Abr 09, 2021 1:21 pm
Qui Abr 08, 2021 8:11 pm
Qui Abr 08, 2021 8:06 pm
Qui Abr 08, 2021 6:50 pm
Qui Abr 08, 2021 6:44 pm
Qui Abr 08, 2021 11:24 am
Qui Abr 08, 2021 11:23 am
Qui Abr 08, 2021 8:17 am
Qua Abr 07, 2021 8:34 pm
Qua Abr 07, 2021 7:39 pm
Qua Abr 07, 2021 5:27 pm
Qua Abr 07, 2021 3:27 pm
Qua Abr 07, 2021 12:03 pm
Qua Abr 07, 2021 8:43 am
Qua Abr 07, 2021 6:27 am
Ter Abr 06, 2021 1:17 pm
Ter Abr 06, 2021 12:44 pm
Ter Abr 06, 2021 12:40 pm
Seg Abr 05, 2021 3:41 pm
Seg Abr 05, 2021 1:19 pm
Dom Abr 04, 2021 11:55 pm
Dom Abr 04, 2021 10:02 pm
Dom Abr 04, 2021 7:03 pm
Dom Abr 04, 2021 5:53 pm
Dom Abr 04, 2021 12:14 pm
Dom Abr 04, 2021 1:06 am
Sab Abr 03, 2021 8:26 pm
Sab Abr 03, 2021 8:06 pm
Sab Abr 03, 2021 7:20 pm
Sab Abr 03, 2021 1:23 pm
Sex Abr 02, 2021 2:14 am
Qui Abr 01, 2021 9:34 pm
Qui Abr 01, 2021 5:18 pm
Qui Abr 01, 2021 4:57 pm
Qui Abr 01, 2021 7:42 am
Qua Mar 31, 2021 9:36 pm
Qua Mar 31, 2021 10:41 am
Ter Mar 30, 2021 8:53 pm
Ter Mar 30, 2021 8:49 pm
Ter Mar 30, 2021 3:10 pm
Ter Mar 30, 2021 1:38 pm
Ter Mar 30, 2021 12:35 pm
Seg Mar 29, 2021 11:07 pm
Seg Mar 29, 2021 8:37 pm
Seg Mar 29, 2021 8:16 pm
Seg Mar 29, 2021 5:32 pm
Seg Mar 29, 2021 1:53 pm
Dom Mar 28, 2021 4:13 pm
Dom Mar 28, 2021 1:19 am
Dom Mar 28, 2021 12:17 am
Sab Mar 27, 2021 10:30 pm
Sab Mar 27, 2021 8:33 pm
Sab Mar 27, 2021 8:06 pm
Sab Mar 27, 2021 2:51 pm
Sab Mar 27, 2021 8:53 am
Sab Mar 27, 2021 8:05 am
Sex Mar 26, 2021 3:15 pm
Sex Mar 26, 2021 12:50 pm
Sex Mar 26, 2021 8:28 am
Sex Mar 26, 2021 7:05 am
Qui Mar 25, 2021 7:16 pm
Qui Mar 25, 2021 7:13 pm
Qui Mar 25, 2021 2:44 pm
Qui Mar 25, 2021 11:20 am
Qui Mar 25, 2021 9:15 am
Qua Mar 24, 2021 7:56 pm
Qua Mar 24, 2021 7:53 pm
Qua Mar 24, 2021 6:54 pm
Qua Mar 24, 2021 1:01 pm
Qua Mar 24, 2021 12:27 pm
Qua Mar 24, 2021 12:04 pm
Qua Mar 24, 2021 12:03 pm
Qua Mar 24, 2021 12:02 pm
Qua Mar 24, 2021 11:59 am
Qua Mar 24, 2021 11:56 am
Qua Mar 24, 2021 10:08 am
Ter Mar 23, 2021 10:35 pm
Ter Mar 23, 2021 9:49 pm
Ter Mar 23, 2021 5:14 pm
Ter Mar 23, 2021 1:59 pm
Ter Mar 23, 2021 10:32 am
Ter Mar 23, 2021 2:29 am
Ter Mar 23, 2021 1:19 am
Seg Mar 22, 2021 6:34 pm
Seg Mar 22, 2021 3:25 pm
Seg Mar 22, 2021 1:33 pm
Seg Mar 22, 2021 10:10 am
Dom Mar 21, 2021 9:25 pm
Dom Mar 21, 2021 8:27 pm
Dom Mar 21, 2021 10:48 am
hellside
dutrabr100
Kleber Lucas
diegopds
poyser
dutrabr100
ronigleydson
Chilinger
ffabim
tendrozino
gui78h3
MRX
Magnatah
Magnatah
Edivandro2706
Kleber Lucas
Pokedlg
poyser
poyser
kingalphaz1
BrunaFelicio
backup
dutrabr100
conceptfac
Chilinger
luizphelipe
dutrabr100
dutrabr100
SauloeArthur
poyser
Triskal
luizphelipe
darkrj
dutrabr100
Anderson Mello
tulio filipe
rr indie games
Triskal
rr indie games
danielPedra90
Triskal
Triskal
rr indie games
PauloR2811
diegopds
LGC
Pokedlg
adenilson romao
Triskal
rr indie games
Fagner
loucoporjogo
rafaelllsd
Charlesoff
michelcreis@hotmail.com
Edivandro2706
Fagner
adrianobros2
Sergio1223
Zyll
Triskal
RGT2020
dutrabr100
jeancvo3
dkdetroi
Triskal
Charlesoff
dutrabr100
Fagner
dutrabr100
SamusAran
MayLeone
gui78h3
loucoporjogo
RGT
RGT
RGT
faustommat
Daniel Dória
bobESquisito
bobESquisito
bobESquisito
bobESquisito
bobESquisito
michelcreis@hotmail.com
Suphit
bobESquisito
Pokedlg
Charlesoff
Mafuyu
lordstrik
Fagner
Brian Victor
SgtMatuto
rene3768
dutrabr100
Note
Charlesoff
luizphelipe

Tiro continuar em linha reta depois de chegar ao "alvo"

Ir em baixo

DÚVIDA Tiro continuar em linha reta depois de chegar ao "alvo"

Mensagem por Shidote Sab Out 17, 2020 11:29 pm

Queria uma ajuda para fazer o inimigo atirar em uma posição passada do player, porem depois chegar nessa posição ele continue seguindo em linha reta.

meu script ate o momento faz o tiro segui ate uma posição passada do inimigo, porem quando chega nessa posição ele para e se destroy depois de um tempo (como se explodisse) -fiz desse jeito pq não consegui fazer ele seguir em linha reta-:


Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class tiroDoisChefe : MonoBehaviour
{   
    public float speed;
    public GameController controller;
    private float[] targetPlayer;
    public float targetX;
    public float targetY;
    public GameObject explosao;
    public Animator animState;
    public bool spawned = false;
    private Vector2 player;
    private Vector2 tiroPosition;
    
    void Start(){
        controller = FindObjectOfType<GameController>();
        StartCoroutine(animationTiro());
        
    }

    
    void Update(){
        
        player = new Vector2(targetX + 0.61f, targetY + 0.43783832f); // ajustar posição do sprite
        tiroPosition = gameObject.transform.position;
        if (spawned == true){
            transform.position = Vector2.MoveTowards(transform.position, new Vector2(targetX + 0.61f, targetY + 0.43783832f), (speed) * Time.deltaTime);
            if (player.Equals(tiroPosition)){
                animState.SetInteger("transition", 2);
                Destroy(gameObject, 1f);
                
            }
        }
    }

    void OnTriggerEnter2D(Collider2D colisor){
        
        if (colisor.gameObject.CompareTag("player")){
            controller.lifeLose -=1;
            Destroy(gameObject);
        }
        
    }
    IEnumerator animationTiro(){

        animState.SetInteger("transition", 0); // animação de aparecer o tiro
        yield return new WaitForSecondsRealtime(0.5f); //espera primeira animação acabar
        animState.SetInteger("transition", 1); // começa animação de brilho do tiro 

        spawned = true; //confirma que foi feito a primeira animação
        targetX = GameObject.FindGameObjectWithTag("player").GetComponent<Transform>().position.x;
        targetY = GameObject.FindGameObjectWithTag("player").GetComponent<Transform>().position.y; // pega posição atual do player
        
        yield return new WaitForSecondsRealtime(10f);
    }
}



Shidote
Iniciante
Iniciante

PONTOS : 227
REPUTAÇÃO : 0
Respeito as regras : Tiro continuar em linha reta depois de chegar ao "alvo" WvDYdlf

Voltar ao Topo Ir em baixo

DÚVIDA Re: Tiro continuar em linha reta depois de chegar ao "alvo"

Mensagem por Fagner Dom Out 18, 2020 7:08 pm

Ao invés de mover pra uma posição específica, você calcula a direção:
(player.posição - tiro.position).normalized;
o normalized vai fazer essa direção ter a magnitude 1, impedindo que a bala tenha velocidades diferentes dependendo da distância.
Depois basta mover usando a posição atual + direção, algo assim:
Código:
using UnityEngine;

public class MoverDirecao : MonoBehaviour
{
    public RectTransform player, bala;
    private bool atirar;


    Vector2 direcaoPlayer;

    private void Start()
    {
        bala = GetComponent<RectTransform>();
    }

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            atirar = true;
            direcaoPlayer = (player.localPosition - bala.localPosition).normalized;
        }

        if (atirar)
        {
            bala.localPosition = Vector2.MoveTowards(bala.localPosition, (Vector2)bala.localPosition + direcaoPlayer, 50 * Time.deltaTime);
        }
    }
}
Fagner
Fagner
Moderador

Masculino PONTOS : 2736
REPUTAÇÃO : 514
Áreas de atuação : Modelagem 3D, Programação.
Respeito as regras : Tiro continuar em linha reta depois de chegar ao "alvo" Aad8pUi

Voltar ao Topo Ir em baixo

DÚVIDA Re: Tiro continuar em linha reta depois de chegar ao "alvo"

Mensagem por Shidote Dom Out 18, 2020 11:33 pm

Obrigado, consegui fazer, mas queria tirar uma duvida: no meu jogo os inimigos fica atirando automático, não é ativado por tecla então n tem como eu colocar esse calculo do vetor de direção dentro de um if no update, e se eu colocar no start so vai fazer uma vez no inicio, dai a única solução que consegui descobrir foi colocar esse calculo dentro de um Inumerator e colocar um WaitForSecond com um tempo que o objeto ja vai ser destruido antes no Inumerator pra ele n fazer esse calculo novamente,  existe outro jeito de fazer isso sem precisar chamar um Inumerator?


o código ficou assim:

Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class tiroDoisChefe : MonoBehaviour
{   
    public float speed;
    public GameController controller;
    public Animator animState;
    public bool spawned = false;
    private RectTransform player;
    private RectTransform tiroPosition;
    private Vector2 direcaoPlayer;
    
    void Start(){
        controller = FindObjectOfType<GameController>();
        StartCoroutine(animationTiro());
        tiroPosition = GetComponent<RectTransform>();
    }

    
    void Update(){
        
        if (spawned == true){
            
            tiroPosition.localPosition = Vector2.MoveTowards(tiroPosition.localPosition, (Vector2)tiroPosition.localPosition + direcaoPlayer, (speed) * Time.deltaTime);
        }
    }

    void OnTriggerEnter2D(Collider2D colisor){
        
        if (colisor.gameObject.CompareTag("player")){
            controller.lifeLose -=1;
            Destroy(gameObject);
        }
        // destruir o objeto se ele chegar nos limites da fase
        if ((colisor.gameObject.CompareTag("costa")) || (colisor.gameObject.CompareTag("cima")) || (colisor.gameObject.CompareTag("baixo")) || (colisor.gameObject.CompareTag("frente"))){
            Destroy(gameObject, 1f);
        }
        
    }
    IEnumerator animationTiro(){

        animState.SetInteger("transition", 0); // animação de aparecer o tiro
        yield return new WaitForSecondsRealtime(0.5f); //espera primeira animação acabar
        animState.SetInteger("transition", 1); // começa animação de brilho do tiro 

        spawned = true; //confirma que foi feito a primeira animação
        player = GameObject.FindGameObjectWithTag("player").GetComponent<RectTransform>(); // pegar a cordenada do objeto
        direcaoPlayer = (player.localPosition - tiroPosition.localPosition).normalized; // pega vetor direção em relação do tipo-pra posição capturada do player
    
        yield return new WaitForSecondsRealtime(10f); // espera 10s pra não atualizar a posição do player, para não ficar seguindo ele 
    }
}


Shidote
Iniciante
Iniciante

PONTOS : 227
REPUTAÇÃO : 0
Respeito as regras : Tiro continuar em linha reta depois de chegar ao "alvo" WvDYdlf

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