Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Bala com movimentos estranhos

Opa minha gente tudo certo ? Seguinte, estou com um problema aqui, consegui fazer a posição da arma e disparar os tiros tranquilo, o problema é que quando eu disparo um bala sem mover o personagem a bala segue um direçõa estranha na diagonal e mais lenta, porém se eu disparo a arma enquanto o personagem se move funciona normalmente. Segui todos os passos da aula e o código esta igual, segue abaixo:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Bala : MonoBehaviour {

    public float velocidade = 20;

    // Update is called once per frame
    void FixedUpdate () {
        GetComponent<Rigidbody>().MovePosition
            (GetComponent<Rigidbody>().position + 
                transform.forward * velocidade * Time.deltaTime);
    }
}

Uma coisa que reparei é que a velocidade de 20 não foi suficiente, tive que colocar 200 para ter um efeito de disparo mesmo, mantendo a visibilidade claro. Alguem tem alguma idéia do que pode estar modificando a direção base da minha bala ?

Valeu galera !

4 respostas

Oi, Henrique, tudo bom?

Respondi seu outro tópico também e acho melhor investigar tendo o projeto.

Você mudou algo no Rigidbody da Bala? Tente colocar também o local que as balas são criadas um pouco mais para frente.

Bons estudos :)

Opa Henrique tudo certo cara e você ?

Coloquei o "CanoDaArma" mais para frente mas o comportamento se manteve... De qualquer forma , coloquei meu projeto nesse link aqui: https://drive.google.com/open?id=1pqrq3GIH9p91NxCkFFRkuST0pH0reE9_

Valeu pela força cara !

solução

Valeu, Henrique!

Dei uma investigada e vou começar por esse aqui.

É uma sequencia de coisas encadeadas que estão dando problemas.

A primeira é que sua bala tá com freeze no rigidobody, pode tirar. No momento que você remover você vai notar que os 20 vão ser suficientes pra fazer ela se movimentar normalmente.

Logo depois você vai notar que sua está indo para uma direção estranha, como para trás então tire o menos do transform.forward.

Outra coisa também é que no meu eu não me lembro de colocar o objeto que faz o Cano da Arma na ponta da arma anexado na Hierarquia. Uma coisa que vai acontecer é que como ele está rotacionado o Z dele não está para frente então sua bala sai pra um lado errado. Porque lembra que no Instantiate você passa como rotação a rotação desse objeto.

Mesmo que você vá lá e zere todas as rotações a sua bala vai sair para baixo porque na animação a mão dele tá pra baixo. Minha recomendação de passos pra solucionar este problema:

  • Dar play no jogo e pausar.
  • Selecionar o Cano da Arma e clicar na engrenagem do transform e copiar os valores.
  • Tirar o play, retirar ele da Hierarquia de ossos ficando junto com os tipos dos personagens.
  • Colar o valor no transform clicando na engrenagem > paste values e zerar as rotações.

Veja se isso resolve os problemas.

Quando você for evoluindo nas partes do curso você vai ver formas de contornar isso para voltar o Cano da Arma lá pra parte dos ossos e na programação arrumar a Rotação.

Bons estudos. :)

Opa Henrique tudo certo?

Fiz as alterações que você comentou e deu tudo certo cara, agora está funcionando perfeitamente. Valeu !!!! fou fechar o outro tópico também.