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:
Selecionar Objeto Usando Outlined
Atualização Obrigatória
Criar sprite multiplo de imagens de SVG no unity
camera interativa
Blender - Texture Paint Bugado
duvida-refletir objeto na direçao q a camera olha
Objeto aparecer apenas uma Vez
Nevoa de Guerra
Alterar apenas um Material do Mesh Renderer
Rotacionar player conforme rotação do celular
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
Erro na hora de dar Build.
Dicas Para Cenário De Jogo De Terror
Sistema de Pulo está dando erro.
Duvida sobre mesh colider
Eu to usando este skript recentemente mas ele ta dando esses erros tem como ajudar
movimentação FPS COM ERRO
problema com script de pula pula
Desligar abate de distancia...
Criação de terreno para jogo comercial
OnTrigger e OnColision deixa o jogo mais pesado?
Somar pontos quando matar um inimigo!!
sensibilidade do mouse
Especificações do Celular
Prévia de atualização do meu jogo - Generic Shooter Game
Controles mobile 2d game Kit
criação de tabela comm filtro
Sistema de câmera - SnakeCam
[RESOLVIDO] Desativar texto não funciona
[RESOLVIDO] Erro com bala ...AJUDA
[TUTORIAL] ScrollBar para menus ou inventários
Formação de Equipe
Animação bugada com Legacy
[RESOLVIDO] SetActive não esta funcionando com condiçoes if
Dicas para organização de projeto
SOU MODELADOR SE TIVER ALGUEM PRECISANDO AI ME CONTATE
[TUTORIAL] Geração de níveis randômicos
dar play e spawn começar esta dando erro
movimentação por posição
nao consigo abrir projetos na unity
[RESOLVIDO] Problema com script de random na scale de um objeto
Falha no comando
[RESOLVIDO] Sistema de Replay
AJUDA COM MOVIMENTAÇAO DE ARMAS
[Asset] Brincando no SketchUp fiz uma casa
[RESOLVIDO] Como destruir um objeto com colisor?
[RESOLVIDO] Nome de Teclas
[TUTORIAL] Unity 3D - Sol realista (SunShafts) ->> 2020 funcionando
[TUTORIAL] Sistema de FPS com Corpo
Live dos jogos do fórum
[RESOLVIDO] Pausa dentro do jogo
[RESOLVIDO] Player correndo e animação quando estiver colidindo
App Demo e Pago
Zoom da Câmera Orbital por Botões
FPS de Corpo Inteiro!
[TUTORIAL] FPS Controller com corpo completo!
Como posso criar um sistema de pulo para esse script que determina a gravidade.
Como posso configurar o NetworkManagerHud ?
Fear - Modern House The Game [WINDOWS - ANDROID]
sketchUP
ERRO NO SCRIPT UM UNICO ERRO
A animação não está funcionando bem.
Como eu posso fazer um player estilo GTA e que tenha uma câmera 360 como o GTA?
Pseudo 2D e algumas outras duvidas.
alquem me recomenda uma versao do unity que tenha tudo e que funcione bem e nao trave
[TUTORIAL] Sistema de visão para inimigos baseado em angulos
Compilando para Android
TOUCH
MenuPausa__Pedido
Ideia de como REPRESENTAR VELOCIDADE NA TELA
Erro no isLocalPlayer - Alguém?
Alguém que desenhe sprite 2d ?
Animação de morte
Posso limitar o "Instantiate" para instanciar até uma quantidade X?
Erro na troca de script do personagem
Duvída em relação ao UI em interações com objetos
Movimento helix jump
QUERIA SABER QUAL CODIGO PARA DESATIVAR UMA CAMERA E PASSAR PARA OUTRA
@MarcosSchultz tem como me enviar so o skript sunshafts
[TUTORIAL] AI Enemy ( Jogos de terror )
[ SUN SHAFTS ] nao encontro ele em lugar nenhum, estou usando a ultima versao do unity
PEDIDO - queria um script para entrar em um veiculo
Efeito Suave Ao Virar a Câmera
Quanto tempo o Google Play leva para analisar o app/ jogo e publicar ?
Fazer inimigo acompanhando rotação do player2D
Adicionar +1 ao colidir com objeto
Dark Dreams Reborn 1.7.2
OnAdFailedToLoad ADMOB
Duvida importante Sobre quando é exibido ANUNCIO NA TELA
Como Voltar um Objeto para a Posição Inicial?
Compartilhar a tela do jogo no facebook
Checar se tal objeto está em tal rotação
tamanho do brushes
Salvar cena
importa o caminhao do spintires para o bleand ou unit
Duvida sobre âncoras na UI
FPSController Buga ao Encostar em Porta com Colisor
Animator controller
Como faz para diminuir com tiro um objeto que crescer constatimente?
Hoje à(s) 5:15 pm
Hoje à(s) 5:07 pm
Hoje à(s) 4:33 pm
Hoje à(s) 3:57 pm
Hoje à(s) 3:50 pm
Hoje à(s) 3:05 pm
Hoje à(s) 2:41 pm
Hoje à(s) 1:20 pm
Hoje à(s) 2:49 am
Hoje à(s) 2:36 am
Hoje à(s) 1:31 am
Ontem à(s) 11:07 pm
Ontem à(s) 11:06 pm
Ontem à(s) 10:53 pm
Ontem à(s) 10:43 pm
Ontem à(s) 10:32 pm
Ontem à(s) 10:31 pm
Ontem à(s) 10:24 pm
Ontem à(s) 10:18 pm
Ontem à(s) 10:11 pm
Ontem à(s) 10:09 pm
Ontem à(s) 10:06 pm
Ontem à(s) 6:39 pm
Qua Jan 22, 2020 6:12 pm
Qua Jan 22, 2020 3:57 pm
Qua Jan 22, 2020 12:40 pm
Ter Jan 21, 2020 9:20 pm
Ter Jan 21, 2020 7:34 pm
Ter Jan 21, 2020 6:07 pm
Ter Jan 21, 2020 4:27 pm
Ter Jan 21, 2020 2:35 pm
Seg Jan 20, 2020 11:49 pm
Seg Jan 20, 2020 12:43 pm
Seg Jan 20, 2020 12:28 pm
Dom Jan 19, 2020 7:41 pm
Dom Jan 19, 2020 5:33 pm
Dom Jan 19, 2020 5:28 pm
Dom Jan 19, 2020 2:24 pm
Dom Jan 19, 2020 1:59 am
Sab Jan 18, 2020 11:12 pm
Sab Jan 18, 2020 8:51 pm
Sab Jan 18, 2020 5:57 pm
Sab Jan 18, 2020 5:12 pm
Sab Jan 18, 2020 4:49 pm
Sex Jan 17, 2020 11:36 pm
Sex Jan 17, 2020 9:21 pm
Sex Jan 17, 2020 12:21 pm
Sex Jan 17, 2020 10:10 am
Sex Jan 17, 2020 12:44 am
Qui Jan 16, 2020 9:01 pm
Qui Jan 16, 2020 2:35 pm
Qui Jan 16, 2020 1:00 am
Qua Jan 15, 2020 11:05 pm
Qua Jan 15, 2020 8:22 pm
Qua Jan 15, 2020 6:04 pm
Qua Jan 15, 2020 6:03 pm
Qua Jan 15, 2020 5:41 pm
Qua Jan 15, 2020 12:30 pm
Qua Jan 15, 2020 2:05 am
Ter Jan 14, 2020 10:28 pm
Ter Jan 14, 2020 9:21 pm
Ter Jan 14, 2020 8:34 pm
Ter Jan 14, 2020 4:42 pm
Ter Jan 14, 2020 12:05 pm
Ter Jan 14, 2020 10:25 am
Seg Jan 13, 2020 8:10 pm
Seg Jan 13, 2020 7:51 pm
Seg Jan 13, 2020 5:45 pm
Seg Jan 13, 2020 4:40 pm
Seg Jan 13, 2020 4:31 pm
Seg Jan 13, 2020 2:44 pm
Seg Jan 13, 2020 1:42 am
Dom Jan 12, 2020 11:24 pm
Dom Jan 12, 2020 11:17 pm
Dom Jan 12, 2020 11:10 pm
Dom Jan 12, 2020 9:48 pm
Dom Jan 12, 2020 9:32 pm
Dom Jan 12, 2020 5:29 pm
Dom Jan 12, 2020 7:56 am
Dom Jan 12, 2020 2:59 am
Dom Jan 12, 2020 2:50 am
Sab Jan 11, 2020 10:18 pm
Sab Jan 11, 2020 8:23 pm
Sab Jan 11, 2020 7:54 pm
Sab Jan 11, 2020 1:30 pm
Sab Jan 11, 2020 12:15 pm
Sab Jan 11, 2020 1:42 am
Sex Jan 10, 2020 10:35 am
Sex Jan 10, 2020 8:16 am
Qui Jan 09, 2020 10:12 pm
Qui Jan 09, 2020 10:05 pm
Qui Jan 09, 2020 10:03 pm
Qui Jan 09, 2020 10:00 pm
Qui Jan 09, 2020 9:46 pm
Qui Jan 09, 2020 6:38 pm
Qui Jan 09, 2020 2:43 pm
Qui Jan 09, 2020 2:00 pm
Qui Jan 09, 2020 12:20 am
Qua Jan 08, 2020 11:28 pm
hetrodo
iToddy
joffersoju
giowde
lesgoy
diegopds
mama2401
Socates
MarcosSchultz
MarcosSchultz
NKKF
skillMakarov
skillMakarov
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
Piewdie Mãe
Fagner
Heltonlay
NKKF
MayLeone
Fagner
lucasluiz789
Piewdie Mãe
hendrick22
JhoowGamer
lesgoy
Kleber Lucas
Antônio T
LAGGAMES
AnderGames
nvndx
Antônio T
RafaelSquid1
nvndx
NKKF
Fagner
Piewdie Mãe
Fagner
Wahder
skillMakarov
MarceloYBP
LúcioHenrique098
LúcioHenrique098
RafaelSquid1
nvndx
lesgoy
mama2401
LúcioHenrique098
LúcioHenrique098
teos626
NKKF
RafaelSquid1
RafaelSquid1
Fagner
pwssantos
vibonito
Antônio T
lucasluiz789
hendrick22
BlesseD
hendrick22
Edu4rdogx
gtcmcsgo
RafaelSquid1
juansup
Edivandro2706
felipe jesus
Edivandro2706
Sherlock
Fagner
Felipe42
Felipe42
BlesseD
Felipe42
Felipe42
Magnatah
Antônio T
joffersoju
lucasluiz789
guimaraf
gtcmcsgo
gtcmcsgo
mama2401
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
bruno92
BlesseD
BlesseD
hendrick22
MayLeone

Como freiar uma nave 2d

Ir em baixo

DÚVIDA Como freiar uma nave 2d

Mensagem por dknoob537 em Sab Dez 14, 2019 9:05 am

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

public class ShipMovement : MonoBehaviour
{
    // Start is called before the first frame update
    public Rigidbody2D rigidBody;
    public float speed = 5f;
    private float rotate = 0f;
    private float front = 0f;
    Vector2 m_EulerAngleVelocity;
    public float revSpeed = 50.0f;
    public float maxSpeed;
    public float nowSpeed;
    void Start()
    {
        rigidBody = GetComponent<Rigidbody2D>();
        m_EulerAngleVelocity = new Vector3(0, 100, 0);
    }

    // Update is called once per frame
    void Update()
    {
        nowSpeed = rigidBody.velocity.magnitude;
        rotate = Input.GetAxis("Horizontal");
        front = Input.GetAxis("Vertical");
        if (rotate > 0f)
        {
            rigidBody.MoveRotation(rigidBody.rotation + -1 * revSpeed * Time.fixedDeltaTime);
        }
        else if (rotate < 0f)
        {
            rigidBody.MoveRotation(rigidBody.rotation + 1 * revSpeed * Time.fixedDeltaTime);
        }

        if (front > 0f && nowSpeed < maxSpeed)
        {
            rigidBody.AddRelativeForce(Vector2.up * speed * Time.deltaTime);
        }
        else if (front < 0f)
        {
            if (nowSpeed < 1)
            {
                rigidBody.AddRelativeForce(Vector2.down * speed * Time.deltaTime);
            }
        }
     



    }
}
bom basicamente eu quero que a nave freie, tipo ela ta em tal velocidade e quando eu apertar para traz ele ir diminuindo a velocidade gradativamente só que eu estou tendo problemas em imaginar como isso funcionaria pois a velocidade da nave é relativa pra onde eu rotacionei ela.
dknoob537
dknoob537
Membro
Membro

Masculino PONTOS : 797
REPUTAÇÃO : 7
Idade : 18
Respeito as regras : Como freiar uma nave 2d WvDYdlf

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como freiar uma nave 2d

Mensagem por dknoob537 em Sab Dez 14, 2019 9:34 am

@dknoob537 escreveu:
Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ShipMovement : MonoBehaviour
{
    // Start is called before the first frame update
    public Rigidbody2D rigidBody;
    public float speed = 5f;
    private float rotate = 0f;
    private float front = 0f;

    public float revSpeed = 50.0f;
    public float maxSpeed;
    public float nowSpeed;
    public float nowSpeedy;
    public Joint2D rb3;
    void Start()
    {
        rigidBody = GetComponent<Rigidbody2D>();
        rb3 = GetComponent<Joint2D>();
     
    }

    // Update is called once per frame
    void Update()
    {
        nowSpeed = rigidBody.velocity.magnitude;
        nowSpeedy = transform.InverseTransformDirection(rigidBody.velocity).y;
        rotate = Input.GetAxis("Horizontal");
        front = Input.GetAxis("Vertical");
        if (rotate > 0f)
        {
        rigidBody.MoveRotation(rigidBody.rotation + -1 * revSpeed * Time.fixedDeltaTime);
       
        }
        else if (rotate < 0f)
        {
            rigidBody.MoveRotation(rigidBody.rotation + 1 * revSpeed * Time.fixedDeltaTime);
        }

        if (front > 0f && nowSpeedy < maxSpeed)
        {
            rigidBody.AddRelativeForce(Vector2.up * speed * Time.deltaTime);
        }
        else if (front < 0f )
        {
            if (nowSpeedy > 0)
            {
                rigidBody.AddRelativeForce(Vector2.down * speed * Time.deltaTime);
            }
        }
     



    }
}
agr funciona mas nem tanto, ele fica quase parado
dknoob537
dknoob537
Membro
Membro

Masculino PONTOS : 797
REPUTAÇÃO : 7
Idade : 18
Respeito as regras : Como freiar uma nave 2d WvDYdlf

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como freiar uma nave 2d

Mensagem por dknoob537 em Sab Dez 14, 2019 9:48 am

@dknoob537 escreveu:
@dknoob537 escreveu:
Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ShipMovement : MonoBehaviour
{
    // Start is called before the first frame update
    public Rigidbody2D rigidBody;
    public float speed = 5f;
    private float rotate = 0f;
    private float front = 0f;

    public float revSpeed = 50.0f;
    public float maxSpeed;
    public float nowSpeed;
    public float nowSpeedy;
    public float nowSpeedx;
    public Joint2D rb3;
    void Start()
    {
        rigidBody = GetComponent<Rigidbody2D>();
        rb3 = GetComponent<Joint2D>();
     
    }

    // Update is called once per frame
    void Update()
    {
        nowSpeed = rigidBody.velocity.magnitude;
        nowSpeedy = transform.InverseTransformDirection(rigidBody.velocity).y;
        nowSpeedx = transform.InverseTransformDirection(rigidBody.velocity).x;
        rotate = Input.GetAxis("Horizontal");
        front = Input.GetAxis("Vertical");
        if (rotate > 0f)
        {
        rigidBody.MoveRotation(rigidBody.rotation + -1 * revSpeed * Time.fixedDeltaTime);
       
        }
        else if (rotate < 0f)
        {
            rigidBody.MoveRotation(rigidBody.rotation + 1 * revSpeed * Time.fixedDeltaTime);
        }

        if (front > 0f && nowSpeedy < maxSpeed)
        {
            rigidBody.AddRelativeForce(Vector2.up * speed * Time.deltaTime);
        }
        else if (front < 0f )
        {
            if (nowSpeedy > 0)
            {
                rigidBody.AddRelativeForce(Vector2.down * speed * Time.deltaTime);
            }
            if (nowSpeedx > 0)
            {
                rigidBody.AddRelativeForce(Vector2.left * speed * Time.deltaTime);
            }
            if (nowSpeedx < 0)
            {
                rigidBody.AddRelativeForce(Vector2.right * speed * Time.deltaTime);
            }

        }
     



    }
agr é mt perto de parado mas n para 
dknoob537
dknoob537
Membro
Membro

Masculino PONTOS : 797
REPUTAÇÃO : 7
Idade : 18
Respeito as regras : Como freiar uma nave 2d WvDYdlf

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como freiar uma nave 2d

Mensagem por mecjo em Sab Dez 14, 2019 9:47 pm

Rapaz, isso tudo é só para mover a nave ?
mecjo
mecjo
Membro
Membro

PONTOS : 862
REPUTAÇÃO : 9
Respeito as regras : Como freiar uma nave 2d WvDYdlf

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como freiar uma nave 2d

Mensagem por Tegh em Dom Dez 15, 2019 8:16 am

Há bastante velocidade aí! No caso, não haveria uma forma de criar uma dependência com uma única variável de velocidade, assim, controlar a mesma afetaria todas as velocidades, ou seja, se colocar esta em 0, todo o sistema vai parar.

Tegh
Avançado
Avançado

Masculino PONTOS : 890
REPUTAÇÃO : 96
Idade : 18
Respeito as regras : Como freiar uma nave 2d WvDYdlf

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como freiar uma nave 2d

Mensagem por dknoob537 em Dom Dez 15, 2019 1:30 pm

@mecjo escreveu:Rapaz, isso tudo é só para mover a nave ?
sim, é que eu sou leigo mas tem algumas coisas q da pra ajeitar
dknoob537
dknoob537
Membro
Membro

Masculino PONTOS : 797
REPUTAÇÃO : 7
Idade : 18
Respeito as regras : Como freiar uma nave 2d WvDYdlf

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como freiar uma nave 2d

Mensagem por dknoob537 em Dom Dez 15, 2019 1:32 pm

@Tegh escreveu:Há bastante velocidade aí! No caso, não haveria uma forma de criar uma dependência com uma única variável de velocidade, assim, controlar a mesma afetaria todas as velocidades, ou seja, se colocar esta em 0, todo o sistema vai parar.

como eu faria isso?
Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ShipMovement : MonoBehaviour
{
    // Start is called before the first frame update
    public Rigidbody2D rigidBody;
    public float speed = 5f;
    private float rotate = 0f;
    private float front = 0f;

    public float revSpeed = 50.0f;
    public float maxSpeed;
    public float nowSpeed;
    public float nowSpeedy;
    public float nowSpeedx;
    //public Joint2D rb3;
    void Start()
    {
        rigidBody = GetComponent<Rigidbody2D>();
      //  rb3 = GetComponent<Joint2D>();
     
    }

    // Update is called once per frame
    void Update()
    {
        // movimento
        nowSpeed = rigidBody.velocity.magnitude;
        nowSpeedy = transform.InverseTransformDirection(rigidBody.velocity).y;
        nowSpeedx = transform.InverseTransformDirection(rigidBody.velocity).x;
        rotate = Input.GetAxis("Horizontal");
        front = Input.GetAxis("Vertical");
        if (rotate > 0f)
        {
        rigidBody.MoveRotation(rigidBody.rotation + -1 * revSpeed * Time.fixedDeltaTime);
       
        }
        else if (rotate < 0f)
        {
            rigidBody.MoveRotation(rigidBody.rotation + 1 * revSpeed * Time.fixedDeltaTime);
        }

        if (front > 0f)
        {
            if (nowSpeedy < maxSpeed)
            rigidBody.AddRelativeForce(Vector2.up * speed * Time.deltaTime);
            if (nowSpeedx > 0)
            {
                rigidBody.AddRelativeForce(Vector2.left * speed * Time.deltaTime);
            }
            if (nowSpeedx < 0)
            {
                rigidBody.AddRelativeForce(Vector2.right * speed * Time.deltaTime);
            }

        }
        else if (front < 0f )
        {
            if (nowSpeedy > 0)
            {
                rigidBody.AddRelativeForce(Vector2.down * speed * Time.deltaTime);
            }
            if (nowSpeedx > 0)
            {
                rigidBody.AddRelativeForce(Vector2.left * speed * Time.deltaTime);
            }
            if (nowSpeedx < 0)
            {
                rigidBody.AddRelativeForce(Vector2.right * speed * Time.deltaTime);
            }

        }
       



    }
}
dknoob537
dknoob537
Membro
Membro

Masculino PONTOS : 797
REPUTAÇÃO : 7
Idade : 18
Respeito as regras : Como freiar uma nave 2d WvDYdlf

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como freiar uma nave 2d

Mensagem por dknoob537 em Dom Dez 15, 2019 1:58 pm

@Tegh escreveu:Há bastante velocidade aí! No caso, não haveria uma forma de criar uma dependência com uma única variável de velocidade, assim, controlar a mesma afetaria todas as velocidades, ou seja, se colocar esta em 0, todo o sistema vai parar.
eu atribui um variavel a magnitude da velocidade da nave porem quando falo q ele é zero n funciona pois o dado é apenas de leitura e nao modifica a velocidade do rigibody
dknoob537
dknoob537
Membro
Membro

Masculino PONTOS : 797
REPUTAÇÃO : 7
Idade : 18
Respeito as regras : Como freiar uma nave 2d WvDYdlf

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como freiar uma nave 2d

Mensagem por Tegh em Dom Dez 15, 2019 6:54 pm

dknoob537:

@dknoob537 escreveu:
@Tegh escreveu:Há bastante velocidade aí! No caso, não haveria uma forma de criar uma dependência com uma única variável de velocidade, assim, controlar a mesma afetaria todas as velocidades, ou seja, se colocar esta em 0, todo o sistema vai parar.

como eu faria isso?
Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ShipMovement : MonoBehaviour
{
    // Start is called before the first frame update
    public Rigidbody2D rigidBody;
    public float speed = 5f;
    private float rotate = 0f;
    private float front = 0f;

    public float revSpeed = 50.0f;
    public float maxSpeed;
    public float nowSpeed;
    public float nowSpeedy;
    public float nowSpeedx;
    //public Joint2D rb3;
    void Start()
    {
        rigidBody = GetComponent<Rigidbody2D>();
      //  rb3 = GetComponent<Joint2D>();
      
    }

    // Update is called once per frame
    void Update()
    {
        // movimento
        nowSpeed = rigidBody.velocity.magnitude;
        nowSpeedy = transform.InverseTransformDirection(rigidBody.velocity).y;
        nowSpeedx = transform.InverseTransformDirection(rigidBody.velocity).x;
        rotate = Input.GetAxis("Horizontal");
        front = Input.GetAxis("Vertical");
        if (rotate > 0f)
        {
         rigidBody.MoveRotation(rigidBody.rotation + -1 * revSpeed * Time.fixedDeltaTime);
        
        }
        else if (rotate < 0f)
        {
            rigidBody.MoveRotation(rigidBody.rotation + 1 * revSpeed * Time.fixedDeltaTime);
        }

        if (front > 0f)
        {
            if (nowSpeedy < maxSpeed)
            rigidBody.AddRelativeForce(Vector2.up * speed * Time.deltaTime);
            if (nowSpeedx > 0)
            {
                rigidBody.AddRelativeForce(Vector2.left * speed * Time.deltaTime);
            }
            if (nowSpeedx < 0)
            {
                rigidBody.AddRelativeForce(Vector2.right * speed * Time.deltaTime);
            }

        }
        else if (front < 0f )
        {
            if (nowSpeedy > 0)
            {
                rigidBody.AddRelativeForce(Vector2.down * speed * Time.deltaTime);
            }
            if (nowSpeedx > 0)
            {
                rigidBody.AddRelativeForce(Vector2.left * speed * Time.deltaTime);
            }
            if (nowSpeedx < 0)
            {
                rigidBody.AddRelativeForce(Vector2.right * speed * Time.deltaTime);
            }

        }
        



    }
}
Eu gostaria de tentar criar algo, porém esta com semanas que estou sem a Unity (Desktop formatado e residência sem internet). Queria ver o funcionamento da física deste componente!

Tegh
Avançado
Avançado

Masculino PONTOS : 890
REPUTAÇÃO : 96
Idade : 18
Respeito as regras : Como freiar uma nave 2d WvDYdlf

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como freiar uma nave 2d

Mensagem por mecjo em Seg Dez 16, 2019 3:13 am

Código:
float x = Input.GetAxis("Horizontal") * Time.deltaTime * Speed;
float y = Input.GetAxis("Vertical") * Time.deltaTime * Speed;
        transform.Translate(x, y, 0);


Testa isso aqui
mecjo
mecjo
Membro
Membro

PONTOS : 862
REPUTAÇÃO : 9
Respeito as regras : Como freiar uma nave 2d WvDYdlf

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como freiar uma nave 2d

Mensagem por mecjo em Seg Dez 16, 2019 3:13 am

Lembre-se de criar uma float Speed
mecjo
mecjo
Membro
Membro

PONTOS : 862
REPUTAÇÃO : 9
Respeito as regras : Como freiar uma nave 2d WvDYdlf

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como freiar uma nave 2d

Mensagem por mecjo em Seg Dez 16, 2019 3:17 am

Lembrando que esse script é um script de movimento completo já, sem usar Rigidbody. 

A partir disso a nave já anda sem ter que freia.
mecjo
mecjo
Membro
Membro

PONTOS : 862
REPUTAÇÃO : 9
Respeito as regras : Como freiar uma nave 2d WvDYdlf

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como freiar uma nave 2d

Mensagem por Tegh em Seg Dez 16, 2019 5:51 pm

mecjo:

@mecjo escreveu:
Código:
float x = Input.GetAxis("Horizontal") * Time.deltaTime * Speed;
float y = Input.GetAxis("Vertical") * Time.deltaTime * Speed;
        transform.Translate(x, y, 0);


Testa isso aqui
O Translate, se não engano-me, ignora a física pelo o fato dele posicionar o objeto. Pode ser um problema caso trabalhe com objetos que implicam alguma força na nave.

Tegh
Avançado
Avançado

Masculino PONTOS : 890
REPUTAÇÃO : 96
Idade : 18
Respeito as regras : Como freiar uma nave 2d WvDYdlf

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como freiar uma nave 2d

Mensagem por mecjo em Ter Dez 17, 2019 4:44 am

@Tegh escreveu:
mecjo:

@mecjo escreveu:
Código:
float x = Input.GetAxis("Horizontal") * Time.deltaTime * Speed;
float y = Input.GetAxis("Vertical") * Time.deltaTime * Speed;
        transform.Translate(x, y, 0);


Testa isso aqui
O Translate, se não engano-me, ignora a física pelo o fato dele posicionar o objeto. Pode ser um problema caso trabalhe com objetos que implicam alguma força na nave.


Exato, porem ele ta trabalhando 2d, acho que fisica não é um foco 100% útil.
mecjo
mecjo
Membro
Membro

PONTOS : 862
REPUTAÇÃO : 9
Respeito as regras : Como freiar uma nave 2d WvDYdlf

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como freiar uma nave 2d

Mensagem por NKKF em Ter Dez 17, 2019 9:56 pm

Olá amiguinhos, boa noite Smile

Não consegui fazer direto na Unity então passei só pelo Visual Studio Code, então pode ter alguns errinhos de semântica, principalmente porque eu mexi em outras coisinhas, qualquer coisa cê traz aqui para a gente dar uma verificada, taok?
Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ShipMovement : MonoBehaviour {
    private Rigidbody2D rigidBody { get { return GetComponent<Rigidbody2D> (); } set { rigidBody = value; } }
    public float speed = 5f;
    public float revSpeed = 50.0f, maxSpeed = 4f; // <- Alterar o max speed

    void FixedUpdate () { // Apenas cálculo de física, não adicione condições de inputs aqui!
        float nowSpeed = rigidBody.velocity.magnitude;
        float rotate = Input.GetAxis ("Horizontal");
        float front = Input.GetAxis ("Vertical");

        if (rotate != 0)
            rigidBody.MoveRotation (rigidBody.rotation + (rotate > 0f ? -1 : 1) * revSpeed);

        if (front != 0) {
            if (front > 0f && nowSpeed < maxSpeed) // Ainda não chegou à velocidade máxima e o usuário está tentando acelerar
                rigidBody.AddRelativeForce (Vector2.up * speed * Time.deltaTime);

            /* Não entendi porque você colocou o nowSpeed < 1, poderia explicar? */
            else if (nowSpeed < 1) // Usuário quer freiar
                rigidBody.velocity = Vector2.Lerp ((Vector2) rigidBody.velocity, Vector2.zero, 0.01f);
        }
    }
}
A mágica acontece principalmente na parte do Lerp
que meio que "suaviza" a transição de um vetor para outro, no caso, "Vector2.zero", ou seja, frear.

Pode não dar certo de primeira, mas tenho certeza que dá para entender a ideia que eu passei..

Depois cê explica a parte do último IF? Onde tem "nowSpeed < 1"? Não entendi, por que você colocou isso aí? O correto não seria: "front < 0"?


Referências Utilizadas (Para estudo):


Vector2 Lerp: https://docs.unity3d.com/ScriptReference/Vector2.Lerp.html
Velocity no Rigidbody: https://docs.unity3d.com/ScriptReference/Rigidbody2D-velocity.html
NKKF
NKKF
ProgramadorMaster

Masculino PONTOS : 2800
REPUTAÇÃO : 498
Idade : 15
Áreas de atuação : Resolver problemas
Respeito as regras : Como freiar uma nave 2d Aad8pUi

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