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:
Animação de arma
[TUTORIAL] Script de arma completo! [FREE]
Como eu faço pra quando o tempo chegar em 14 segundos ele fazer algo
ERRO: O nome de tipo ou namespace "UI" não existe no namespace "UnityEngine"
Existe outras formas de multiplayer sem ser pelo Photon ou Unet?
Skill não se move com o Jogador!!
Amoeba / Gosma - Unity
Player sobreviver desde as 00h ás 04:00
[RESOLVIDO] Publicar no PlayStore um app de Realidade Aumentada
Script de Tempo
[RESOLVIDO] Problema ao arrastar imagens, músicas ou modelos 3D para a UNITY
alguem sabe como atualizar o c#
Como fazer um chão quebrar ao passar por cima no Unity 3D
GetComponet em Array
como fazer um objeto seguir o player 2D
Jogo de Galo e de Galinha também
[TUTORIAL] Controle 3ª pessoa com animações mecânicas (root motion)
Alquem pode me explicar como funciona essa funçao
Como fazer o botão de tiro com touch nao com tecla
Como mover um objeto sem usar collider ou rigidbody?
[RESOLVIDO] Audio Stop e PlayOneShot
Erro ?
Como adicionar códigos nativos de 64 bits em um app Android? 64 bits do Google Play
[RESOLVIDO] Não posso chamar uma matriz por outra?
[RESOLVIDO] Colisão
Mesh bugada no Android
Rotação animação
[RESOLVIDO] Sombras pixeladas (Android)
Como posso fazer pra atirar onde o cursor do mouse está (UNITY 2D)
[DIVULGAÇÃO] Venha aprender C# jogando!
Como programar um sistema para fazer o Player puxar um objetos no Unity
[RESOLVIDO] Erro com "Instantiate"
Migração de Projetos no Unity
Unity: Como otimizar automaticamente o app para o GooglePlay
as sombras da minha sena esta sendo renderizadas longe de aonde deveria começar
Cena para fim do jogo
Podcast de desenvolvedores de jogos
Alguem cria jogos pagos para PLAY STORE?
[DUVIDA] Problema para "spawnar" os players no PhotonNetwork
[RESOLVIDO] Rotacionar modelo ou eixo de orientaçao (iniciante)
Animaçoes
Entou com duvida com on trigger Enter e Exit - UNITY
Script de player - camera bugada - Photon
Alguém que mexa com otimização mobile? Trabalho Remunerado!
Como mudar o prefab do jogador usando unet
Unity Sem DropDown
Demonstração do meu primeiro jogo de terror.
Importa e aplicar animações com root motion
Alterar Variável em conexão de rede
[TUTORIAL] Serialização - JSON
Unity Terrain - Como deixar uma área plana?
Controles mobile 2d game Kit
Projeto Travando Demais
GAME ONLINE UNITY
Novo Projeto - Home Scared
Formação de Equipe
Loja Virtual e moedas.
Oque tem de errado nesse skript ele nao esta voltando a ficar off
Como criar assinatura mensal em jogo na play console
Projétil para arma
[TUTORIAL] Mover objetos 2D e conectar em lugares específicos
[RESOLVIDO] Luz Atravessa Parede
Travando na exportação para Unity
ajuda first person mobile!!
Tento iniciar o unity mas a area de criação não carrega .
Pegar nome objeto clicado
Sistema de coordenadas
Inimigo pular por obstáculos
Erro na execução do jogo
Duvida anuncios da admob
HDRP Unity 2019.3 - Cena escura
Projeto Nervous, formação da equipe
[RESOLVIDO] Salvar Nível de jogo!!
Travar movimento pra frente
Como Faço um Contador na unity 2019 usando GUI
UnityAds
Como reproduzir um som na unity 2019
New The Duel Gunz
trocar de cena quando a vida do inimigo for" 0"
Problema com icone de notificação (small)
Iniciando Unity com erro de compilação
(Google Play) Aviso de instalação não recomendada do meu apk
Problema com a Gui Label
Mudar a Cena ao Apertar o Button
Como fzer um objeto mover suavemente em relacao a camera tipo jogos atuais de fps ajuda :(
Como fazer um campo de visao, vi varios tuturs mas realmente parece ser complexo
Som de queda
Problemas Com C# Script
DAR AÇÃO A UM BOTÃO
Animação de Morte 2
Alterar posição de objeto 2d em relação ao personagem
Bug com Dropdown
Como solicitar permissão de armazenamento na unity
Sistema de Yu-Gi-Oh! - ATT [2020]
[AULAS] Aprenda C# agora!
Como fzer um objeto mover suavemente em relacao a camera tipo jogos atuais de fps
Como faço para corrigir esse erro no script?
[RESOLVIDO] Como posso configurar o NetworkManagerHud ?
Erro no isLocalPlayer - Alguém?
Hoje à(s) 4:29 pm
Hoje à(s) 12:42 pm
Hoje à(s) 12:25 pm
Hoje à(s) 3:50 am
Ontem à(s) 9:01 pm
Ontem à(s) 7:28 pm
Ontem à(s) 3:19 pm
Ontem à(s) 10:36 am
Ontem à(s) 12:29 am
Sex Fev 14, 2020 7:41 pm
Sex Fev 14, 2020 4:59 pm
Sex Fev 14, 2020 2:19 pm
Qui Fev 13, 2020 2:25 pm
Qua Fev 12, 2020 3:01 pm
Qua Fev 12, 2020 11:17 am
Ter Fev 11, 2020 7:26 am
Ter Fev 11, 2020 1:07 am
Ter Fev 11, 2020 1:03 am
Seg Fev 10, 2020 10:30 pm
Seg Fev 10, 2020 8:57 pm
Seg Fev 10, 2020 8:32 pm
Seg Fev 10, 2020 7:01 pm
Seg Fev 10, 2020 4:46 pm
Seg Fev 10, 2020 4:38 pm
Seg Fev 10, 2020 4:15 pm
Dom Fev 09, 2020 8:24 pm
Dom Fev 09, 2020 6:32 pm
Dom Fev 09, 2020 6:27 pm
Dom Fev 09, 2020 6:22 pm
Dom Fev 09, 2020 6:17 pm
Dom Fev 09, 2020 6:11 pm
Dom Fev 09, 2020 5:55 pm
Dom Fev 09, 2020 3:24 pm
Dom Fev 09, 2020 2:18 pm
Dom Fev 09, 2020 2:11 pm
Dom Fev 09, 2020 11:22 am
Sab Fev 08, 2020 2:40 pm
Sab Fev 08, 2020 1:03 pm
Sab Fev 08, 2020 12:10 pm
Sab Fev 08, 2020 11:40 am
Sab Fev 08, 2020 11:18 am
Sab Fev 08, 2020 4:46 am
Sex Fev 07, 2020 10:22 pm
Sex Fev 07, 2020 9:47 pm
Sex Fev 07, 2020 2:10 pm
Qui Fev 06, 2020 10:35 pm
Qui Fev 06, 2020 10:06 pm
Qui Fev 06, 2020 9:44 pm
Qui Fev 06, 2020 2:23 pm
Qui Fev 06, 2020 2:01 pm
Qui Fev 06, 2020 12:51 pm
Qui Fev 06, 2020 10:36 am
Qui Fev 06, 2020 1:19 am
Qua Fev 05, 2020 10:26 pm
Qua Fev 05, 2020 10:13 pm
Qua Fev 05, 2020 10:12 pm
Qua Fev 05, 2020 10:03 pm
Qua Fev 05, 2020 10:02 pm
Qua Fev 05, 2020 10:01 pm
Qua Fev 05, 2020 9:09 pm
Qua Fev 05, 2020 7:48 pm
Qua Fev 05, 2020 10:10 am
Qua Fev 05, 2020 10:03 am
Qua Fev 05, 2020 12:37 am
Qua Fev 05, 2020 12:04 am
Ter Fev 04, 2020 7:36 pm
Ter Fev 04, 2020 3:14 pm
Ter Fev 04, 2020 1:33 pm
Seg Fev 03, 2020 2:18 pm
Seg Fev 03, 2020 9:06 am
Dom Fev 02, 2020 11:42 pm
Dom Fev 02, 2020 9:56 pm
Dom Fev 02, 2020 8:53 pm
Dom Fev 02, 2020 7:58 pm
Dom Fev 02, 2020 6:46 pm
Dom Fev 02, 2020 4:06 am
Dom Fev 02, 2020 1:59 am
Sab Fev 01, 2020 10:35 pm
Sab Fev 01, 2020 10:14 pm
Sab Fev 01, 2020 10:01 pm
Sab Fev 01, 2020 8:56 pm
Sab Fev 01, 2020 7:31 pm
Sab Fev 01, 2020 6:19 pm
Sab Fev 01, 2020 1:15 pm
Sab Fev 01, 2020 12:52 pm
Sab Fev 01, 2020 4:54 am
Sex Jan 31, 2020 3:32 pm
Sex Jan 31, 2020 2:59 pm
Sex Jan 31, 2020 2:56 pm
Sex Jan 31, 2020 1:16 pm
Qui Jan 30, 2020 11:42 pm
Qui Jan 30, 2020 8:15 pm
Qua Jan 29, 2020 9:43 pm
Qua Jan 29, 2020 7:09 pm
Qua Jan 29, 2020 6:40 pm
Qua Jan 29, 2020 4:07 pm
Qua Jan 29, 2020 3:34 pm
Qua Jan 29, 2020 4:16 am
Ter Jan 28, 2020 10:21 pm
Edivandro2706
Edu4rdogx
ygor18
juansup
Fagner
Nalfam
Fagner
SherDown
joffersoju
joffersoju
MarcosSchultz
diegopds
Daniel Dória
Weslley
palestinus
dstaroski
pedroorf
ffabim
estuartyy
diegopds
BlesseD
iToddy
iToddy
Snickers1020
maxwarnava
Duarte
MayLeone
MRX
MayLeone
poyser
MayLeone
BlesseD
Fagner
lesgoy
lesgoy
Nightos
hendrick22
lesgoy
daniel123163
HEINZ4K
hendrick22
Felipe42
juansup
mama2401
juansup
LúcioHenrique098
lauderson
hendrick22
SergioDB
paulocezarphp
Edu4rdogx
robsonguerrero
ffabim
fecirineu
fecirineu
fecirineu
fecirineu
Felipe42
fecirineu
speedluk
Batataaaa
guimaraf
Edivandro2706
Fagner
Fagner
FortunoKiller
juansup
JohnRambo
Antônio T
poyser
lesgoy
Sherlock
poyser
speedluk
MayLeone
EduAze33
Fagner
Chilinger
poyser
poyser
DIEGO29
poyser
Edivandro2706
Fagner
Fagner
LúcioHenrique098
Edivandro2706
BlesseD
BlesseD
hendrick22
tyna1
JoelMJunior
poyser
MayLeone
MayLeone
BlesseD
RafaelSquid1
juansup
juansup

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 : 820
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 : 820
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 : 820
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 : 886
REPUTAÇÃO : 10
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 : 914
REPUTAÇÃO : 97
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 : 820
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 : 820
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 : 820
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 : 914
REPUTAÇÃO : 97
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 : 886
REPUTAÇÃO : 10
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 : 886
REPUTAÇÃO : 10
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 : 886
REPUTAÇÃO : 10
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 : 914
REPUTAÇÃO : 97
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 : 886
REPUTAÇÃO : 10
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 : 2825
REPUTAÇÃO : 499
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