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:
È certo ver tutorial ensinando a fazer um script especifico?
[TUTORIAL] Deformar mesh com batidas (para objetos, veículos, etc)
Sniper Modelo 3D
Interrogação beta, jogo de puzzle 3D
Qual servidor com melhor custo-benefício?
[RESOLVIDO] Método retornar bool tem um for() dentro de um if() dando erro
Unity reproduzindo sons audíveis mesmo com o Audio Listener desativado
Estatisticas Gerais dentro do Jogo?
Problema com jogo finalizado!!!
Problemas com sombra no modelo 3d
[TUTORIAL] FPS Camera e movimento
Fazer personagem 3d ficar de frente para outro durante diálogo
Bug(???) no AudioSource
Como fazer uma partícula da UI aparecer na câmera?
Bug de carregamento de cena
C# não reconhece biblioteca UI
Sketchup pede para aumentar o projeto
FBX não gera sombra
[Modelo 3D]Unity Interior 3D Estilo De Terror + Download Grátis
Pack de áudio/ efeitos sonoros gratuitos.
dá para integrar o mercado pago no Unity?
Blend Trees
Problema com sombra
Como a IA de Yu-Gi-Oh! Capsule Monsters funciona?
Me ajudem !!! na venda do item não está subtraindo o valor
Sistema de Arma 3D
Colocar limite de itens na cena
Código para drop de itens conforme raridade (probabilidade)
Texturas bugadas na build do jogo
O pulo só funciona as vezes
Duvida sobre transforma um objeto em filho
[Script] Abrir porta de correr... Erro ao abri.
Loja com Gateway de pagamentos
Problema na conexão do celular com a unity
Alguem porfavor concerta o erro desses scripts, agradeço
ERRO AO GERAR ILUMINAÇÂO
Sistema para receber pagamentos e fazer saques de dinheiro dentro do jogo
dica para sistema de login
Login
Tetris: Ghost House
Help em exibir informações do personagem na UI do game
(Dúvida) Modelagem 3D sem vida
[TUTORIAL] Script para medir o FPS do seu JOGO
Unity colisao nao funciona
[Flood/Spam] PEDIDO Alguem pode resolver o erro desses script
como fazer um objeto rotacionar suavimente em direcao a outro? (Unity3D)
app pesado
CAMERA ANGULANDO CONFORME USO
3D, Player gruda na parede
[TUTORIAL] Sistema de escolha de personagens
Alguem pode resolver o erro desses scripts, resolver o erro deste pacote
Preciso de ajuda para implementação do sistema de score no jogo na unity
Erro ao toca em um Button a parti de um touch
Background ficando na frente de outros objetos
Como pega a posição da tela
Dúvida com mecânica de voltar o tempo
Erro com switch case (C#)
fechar jogo
Qual tamanho certo pra fazer imagens UI, botões...
interação com objeto
Ajuda na integração do sistema de Raycast com AI de Terror
Alguem pode concertar os erros nesses scripts para min?
Duvida sobre Cinemachine 2D!
Highlight (seleção) não funciona corretamente no menu
Google maps api
fumaça do pneu
Duvida sobre Criação de Materiais e URP
Porta automática
Ajuda ai meu 1 jogo :D
AI Points SIMPLES ignora barreiras
Jogo rejeitado pela Google Play
ajuda inimigo que ande e tire vida
Gostaria de testar os seus jogos em meu canal.
controle de usuarios
pago por script funcional estilo pokémon generetions para unity 2D
material segurando botão
Dúvida com Time.deltaTime
Como evitar de usar um item quando ele não estiver equipado
Como pego uma posição dentro de um Collider e acesso ela?
Rotação ao colidir.
Bug com iluminação
[RESOLVIDO] Ajuda com script para matar Inimigo no Jogo
Porta(ou algo do tipo) com senha para 2D
uma duvida meio ridícula, mas está me dando dor de cabeça
SISTEMA DE SAVE
Receber dados udp no Android
Como carregar arquivos fora do "Data" da unity?
[RESOLVIDO] musica aleatoria
Testes de games
[TUTORIAL] Script de arma 2D [Unity]
Pokemon Script
Animação Unity
[RESOLVIDO] Rigidbody2D.AddForce esta teleportando o objeto
Jogo Mobile - Space Time Machine
como fazer um sistema (lista) de captura igual de pokemon generations
como fazer um sistema de captura igual de pokemon generations
COMO EU DEIXO O JOGO RODANDO MESMO MINIMIZADO?
[TUTORIAL] AI Enemy ( Jogos de terror )
Discord
Hoje à(s) 8:39 am
Ontem à(s) 10:39 pm
Seg Set 20, 2021 6:30 pm
Seg Set 20, 2021 5:57 pm
Seg Set 20, 2021 1:20 pm
Dom Set 19, 2021 11:45 pm
Dom Set 19, 2021 2:17 pm
Dom Set 19, 2021 12:36 pm
Dom Set 19, 2021 10:15 am
Sab Set 18, 2021 10:42 pm
Sab Set 18, 2021 7:12 pm
Sex Set 17, 2021 7:54 pm
Sex Set 17, 2021 5:20 pm
Sex Set 17, 2021 2:29 pm
Sex Set 17, 2021 1:30 pm
Sex Set 17, 2021 6:29 am
Sex Set 17, 2021 12:17 am
Sex Set 17, 2021 12:03 am
Qui Set 16, 2021 7:28 pm
Qui Set 16, 2021 3:41 pm
Qua Set 15, 2021 1:11 pm
Qua Set 15, 2021 12:51 pm
Ter Set 14, 2021 10:27 pm
Ter Set 14, 2021 4:18 pm
Seg Set 13, 2021 6:13 pm
Seg Set 13, 2021 4:53 pm
Dom Set 12, 2021 10:57 am
Dom Set 12, 2021 1:07 am
Sab Set 11, 2021 9:50 pm
Sab Set 11, 2021 1:34 pm
Sab Set 11, 2021 11:13 am
Sab Set 11, 2021 10:55 am
Sex Set 10, 2021 11:50 pm
Sex Set 10, 2021 11:35 pm
Sex Set 10, 2021 4:41 pm
Sex Set 10, 2021 3:27 am
Qui Set 09, 2021 9:55 pm
Qui Set 09, 2021 1:51 pm
Qui Set 09, 2021 1:48 pm
Qua Set 08, 2021 12:58 pm
Qua Set 08, 2021 10:15 am
Ter Set 07, 2021 10:37 am
Ter Set 07, 2021 10:21 am
Seg Set 06, 2021 6:09 pm
Dom Set 05, 2021 5:16 pm
Dom Set 05, 2021 2:20 pm
Dom Set 05, 2021 12:09 pm
Sab Set 04, 2021 8:33 pm
Sab Set 04, 2021 2:58 pm
Sex Set 03, 2021 2:10 pm
Qui Set 02, 2021 11:26 pm
Qua Set 01, 2021 8:15 pm
Qua Set 01, 2021 3:44 pm
Qua Set 01, 2021 3:40 pm
Qua Set 01, 2021 3:38 pm
Ter Ago 31, 2021 10:22 am
Seg Ago 30, 2021 3:25 pm
Seg Ago 30, 2021 10:51 am
Seg Ago 30, 2021 10:08 am
Seg Ago 30, 2021 12:52 am
Dom Ago 29, 2021 10:25 pm
Dom Ago 29, 2021 5:56 pm
Dom Ago 29, 2021 12:36 am
Sab Ago 28, 2021 10:41 pm
Sab Ago 28, 2021 10:16 pm
Sab Ago 28, 2021 10:21 am
Sab Ago 28, 2021 12:00 am
Sex Ago 27, 2021 9:31 pm
Sex Ago 27, 2021 10:40 am
Qua Ago 25, 2021 11:08 pm
Qua Ago 25, 2021 8:34 pm
Qua Ago 25, 2021 8:17 pm
Qua Ago 25, 2021 7:00 pm
Qua Ago 25, 2021 4:56 pm
Qua Ago 25, 2021 10:14 am
Ter Ago 24, 2021 6:44 pm
Ter Ago 24, 2021 11:15 am
Seg Ago 23, 2021 1:55 pm
Seg Ago 23, 2021 12:17 pm
Dom Ago 22, 2021 10:26 pm
Dom Ago 22, 2021 3:56 pm
Dom Ago 22, 2021 11:11 am
Sab Ago 21, 2021 11:16 pm
Sab Ago 21, 2021 5:03 pm
Sab Ago 21, 2021 1:30 pm
Qui Ago 19, 2021 11:54 pm
Qui Ago 19, 2021 11:35 pm
Qui Ago 19, 2021 2:21 pm
Qui Ago 19, 2021 10:54 am
Qui Ago 19, 2021 8:42 am
Qua Ago 18, 2021 7:54 pm
Qua Ago 18, 2021 6:50 pm
Qua Ago 18, 2021 4:07 pm
Qua Ago 18, 2021 4:05 pm
Qua Ago 18, 2021 11:18 am
Qua Ago 18, 2021 11:11 am
Ter Ago 17, 2021 8:35 pm
Ter Ago 17, 2021 6:30 pm
Ter Ago 17, 2021 12:24 pm
GustavoPeky2
WesFarias
TIKO
TIKO
Weslley
WLCS22
Rangel Oblivion
Kayke_27
Rangel Oblivion
btrindadeart
Maston
ronigleydson
TIKO
Atho
aligator1159
TIKO
Edivandro2706
Edivandro2706
TIKO
Fagner
kessisdiones
Mozinhas2
Edivandro2706
merike11
kleitondiones
Charlesoff
TIKO
Fagner
Rangel Oblivion
WLO GAMES
WLO GAMES
WLO GAMES
kleitondiones
kleitondiones
MateusWTP
MRX
kessisdiones
giowde
giowde
classicandsimple
Weslley
poyser
lauderson
classicandsimple
MateusWTP
alnmg
Édipo
maxwarnava
Inequalis
xgilmar
MateusWTP
Franttyck
Fagner
Fagner
Fagner
Ewfc2005
bruno700mb
giowde
Phirdy
misakki
Ewfc2005
MateusWTP
Inequalis
Rangel Oblivion
classicandsimple
classicandsimple
André Rodrigues
classicandsimple
PROgamadornoob
pdsimulador
verme1311
Charlesoff
RodrigoPrivilegium
giowde
Etoeu
classicandsimple
classicandsimple
Ewfc2005
RenatoBarreto
Mozinhas2
Charlesoff
ronigleydson
Fagner
bruno700mb
Fagner
The4
MarceloYBP
giowde
BrunoRondao
NeoThanatus
Etoeu
Charlesoff
titan27
Fagner
Etoeu
Etoeu
verme1311
samucapimenta55
Crash Psycho

Dúvida com Time.deltaTime

3 participantes

Ir para baixo

DÚVIDA Dúvida com Time.deltaTime

Mensagem por SulofShadow Dom Ago 22, 2021 8:37 pm

Olá boa noite!
    Eu estou tentando aprender unity, e para praticar, estou refazendo o jogo antigo do mario. Naquele jogo, quando se pula, têm um tempo até você descer, uns 0.3, 0.5 segundos. 
Selecionar Código

Abrir Codigo

[list=linenums]
[*]if (Input.GetKey(KeyCode.Space) && isGround)

[*]{

[*]      rb.AddForce(transform.up * forcaPulo);

[*]      isGround = false;

[*]}

[*]       

[*]if (Input.GetKeyUp(KeyCode.Space))

[*]{

[*]           

[*]      contagemPulo -= Time.deltaTime;

[*]      rb.AddForce(transform.up * forcaDescida);

[*]           

[*]      contagemPulo = 0.5f;

[*]}

[/list]


    Este é o meu código para quando ele estiver no ar e eu soltar o o espaço, faz uma força contrária a gravidade, porém eu gostaria que essa força fosse após um certo tempo, mas não sei como fazer isso muito bem.
SulofShadow
SulofShadow
Iniciante
Iniciante

PONTOS : 36
REPUTAÇÃO : 0
Respeito as regras : Dúvida com Time.deltaTime WvDYdlf

Ir para o topo Ir para baixo

DÚVIDA Re: Dúvida com Time.deltaTime

Mensagem por Pokedlg Dom Ago 22, 2021 9:42 pm

Código:
public float delay = 0.5f;

if (Input.GetKeyUp(KeyCode.Space))
{  
    contagemPulo = delay;        
    contagemPulo -= Time.deltaTime;
    
    if(contagemPulo <= 0) rb.AddForce(transform.up * forcaDescida);

Voce pode fazer uma verificação se contagempulo chegou a 0
Pokedlg
Pokedlg
ProgramadorMaster

Masculino PONTOS : 1104
REPUTAÇÃO : 170
Áreas de atuação : Iniciante: ShaderLab, Blender, Java, C++, ASP.NET.
Intermediário: C#.NET, Unity, Shader Graph.
Respeito as regras : Dúvida com Time.deltaTime Aad8pUi

Ir para o topo Ir para baixo

DÚVIDA Re: Dúvida com Time.deltaTime

Mensagem por SulofShadow Seg Ago 23, 2021 10:45 pm

@Pokedlg escreveu:
Código:
public float delay = 0.5f;

if (Input.GetKeyUp(KeyCode.Space))
{  
    contagemPulo = delay;        
    contagemPulo -= Time.deltaTime;
    
    if(contagemPulo <= 0) rb.AddForce(transform.up * forcaDescida);

Voce pode fazer uma verificação se contagempulo chegou a 0
Eu tinha até tentado fazer com essa verificação, só que estranhei porque parecia que não fazia essa addForce para baixo. Botei até um debug.log() para ver se realmente não estava entrando, e não está!

Como eu sou bem novo em unity, eu só fico vendo alguns tutoriais sobre como fazer e a lógica que adquiri com outras linguagens, não sei se o problema está no resto do código.

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

public class MovimentoPersonagem : MonoBehaviour
{

    public float velocidade = 10f;
    public float forcaPulo = 500;
    public float forcaDescida = -210;
    public float contagemPulo = 0.5f;
    private bool isGround;

    private Rigidbody2D rb;

    // Start is called before the first frame update
    void Start()
    {
        rb = GetComponent<Rigidbody2D>();
    }

    // Update is called once per frame
    void Update()
    {
        Movimentação();
    }

    private void Movimentação()
    {

        // Coisas a se fazer: Atualizar movimentação para rigidbody
        // A movimentação do personagem para os lados
        if (Input.GetKey(KeyCode.D))
        {
            transform.position += new Vector3(1, 0, 0) * velocidade * Time.deltaTime;
        }

        if (Input.GetKey(KeyCode.A))
        {
            transform.position += new Vector3(-1, 0, 0) * velocidade * Time.deltaTime;
        }

        // Pulo
        if (Input.GetKey(KeyCode.Space) && isGround)
        {
            rb.AddForce(transform.up * forcaPulo);
            isGround = false;
        }

        
        // Força inversa à gravidade para descer quando não estiver no ar.
        if (Input.GetKeyUp(KeyCode.Space))
        {
            
            contagemPulo -= Time.deltaTime;
            if (contagemPulo <= 0)
            {

                rb.AddForce(transform.up * forcaDescida);
                Debug.Log("entrei aqui.");
            }
            
        }
    }

    // Colisão no chão para pular
    private void OnCollisionEnter2D(Collision2D collision)
    {
        if(collision.gameObject.tag == "chao")
        {
            isGround = true;
        }
    }

}
SulofShadow
SulofShadow
Iniciante
Iniciante

PONTOS : 36
REPUTAÇÃO : 0
Respeito as regras : Dúvida com Time.deltaTime WvDYdlf

Ir para o topo Ir para baixo

DÚVIDA Re: Dúvida com Time.deltaTime

Mensagem por classicandsimple Ter Ago 24, 2021 1:27 am

Infelizmente por motivos de hardware, não consigo criar um ambiente e testar seu código, porém logicamente alegando isto deveria funcionar.
Crie um outro script com o nome PersonMovement e copie o código abaixo ou altere o nome do arquivo do seu script para isso ou, até mesmo, somente mude o nome dos componentes do meu código para acomodar com a sua escrita.

Se funcionar, avise, caso contrário veja se há alguma ação estranha em como o seu personagem se comporta.
Código::

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

public class PersonMovement : MonoBehavior
{
  public float velocity = 10f;

  public float jumpForce = 500;
  public float fallForce = -210;

  public float jumpTimeCount = 0;

  public bool isPressingJump = false;

  private bool isOnGround;

  private Rigidbody2D rb;

  void Start()
  {
    rb = GetComponent<Rigidbody2D>();
  }

  void Update ()
  {
    Movement();
  }

  private void Movement ()
  {
    if (Input.GetKey (KeyCode.D))
      transform.position += new Vector3 (1, 0, 0) * velocity * Time.deltaTime;

    if (Input.GetKey (KeyCode.A))
      transform.position += new Vector3(-1, 0, 0) * velocity * Time.deltaTime;

    if (Input.GetKey (KeyCode.Space) && isOnGround)
    {
      jumpTimeCount = 0.0f;
      isPressingJump = true;

      rb.AddForce(transform.up * jumpForce);
      isOnGround = false;
    }


    if (Input.GetKeyUp (KeyCode.Space))
    {
      isPressingJump = false;
    }


    if ((isOnGround == false) && (jumpTimeCount < 0.5f))
    {
      jumpTimeCount += Time.deltaTime;
    }


    if ((isPressingJump == false) && (jumpTimeCount > 0.3f))
      rb.AddForce(transform.up * fallForce);
    else if (jumpTimeCount >= 0.5f)
      rb.AddForce(transform.up * fallForce);
    else {
      // Nothing.
    }
  }

  private void OnCollisionEnter2D (Collision2D collision)
  {
    if (collision.gameObject.tag == "chao")
      isOnGround = true;
  }
}


Infelizmente, também, deixei o código sem comentários, todavia imagino que compreenderás sem problemas.
Espero ter ajudado.
classicandsimple
classicandsimple
ProgramadorMaster

Outro / Não divulgar PONTOS : 96
REPUTAÇÃO : 23
Áreas de atuação : Desenvolvimento de software (iniciante com linguagem C).
Respeito as regras : Dúvida com Time.deltaTime Aad8pUi

Ir para o topo Ir para baixo

DÚVIDA Re: Dúvida com Time.deltaTime

Mensagem por SulofShadow Ter Ago 24, 2021 10:22 am

@classicandsimple escreveu:Infelizmente por motivos de hardware, não consigo criar um ambiente e testar seu código, porém logicamente alegando isto deveria funcionar.
Crie um outro script com o nome PersonMovement e copie o código abaixo ou altere o nome do arquivo do seu script para isso ou, até mesmo, somente mude o nome dos componentes do meu código para acomodar com a sua escrita.

Se funcionar, avise, caso contrário veja se há alguma ação estranha em como o seu personagem se comporta.
Código:

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

public class PersonMovement : MonoBehavior
{
  public float velocity = 10f;

  public float jumpForce = 500;
  public float fallForce = -210;

  public float jumpTimeCount = 0;

  public bool isPressingJump = false;

  private bool isOnGround;

  private Rigidbody2D rb;

  void Start()
  {
    rb = GetComponent<Rigidbody2D>();
  }

  void Update ()
  {
    Movement();
  }

  private void Movement ()
  {
    if (Input.GetKey (KeyCode.D))
      transform.position += new Vector3 (1, 0, 0) * velocity * Time.deltaTime;

    if (Input.GetKey (KeyCode.A))
      transform.position += new Vector3(-1, 0, 0) * velocity * Time.deltaTime;

    if (Input.GetKey (KeyCode.Space) && isOnGround)
    {
      jumpTimeCount = 0.0f;
      isPressingJump = true;

      rb.AddForce(transform.up * jumpForce);
      isOnGround = false;
    }


    if (Input.GetKeyUp (KeyCode.Space))
    {
      isPressingJump = false;
    }


    if ((isOnGround == false) && (jumpTimeCount < 0.5f))
    {
      jumpTimeCount += Time.deltaTime;
    }


    if ((isPressingJump == false) && (jumpTimeCount > 0.3f))
      rb.AddForce(transform.up * fallForce);
    else if (jumpTimeCount >= 0.5f)
      rb.AddForce(transform.up * fallForce);
    else {
      // Nothing.
    }
  }

  private void OnCollisionEnter2D (Collision2D collision)
  {
    if (collision.gameObject.tag == "chao")
      isOnGround = true;
  }
}


Infelizmente, também, deixei o código sem comentários, todavia imagino que compreenderás sem problemas.
Espero ter ajudado.
Eu implementei esse código e funcionou! Porém, depois de um tempo o meu personagem para de pular.

E como não pude compreender totalmente essa parte do código, eu não consigo tentar ajeitar ou pelo menos saber o que tá acontecendo.
Código:


// Essa parte não ficou muita clara para mim
if (Input.GetKeyUp(KeyCode.Space))
        {
            isPressingJump = false;
        }

        if ((isOnGround == false) && (jumpTimeCount < 0.5f))
        {
            jumpTimeCount += Time.deltaTime;
        }


        if ((isPressingJump == false) && (jumpTimeCount > 0.3f))
            rb.AddForce(transform.up * fallForce);
        else if (jumpTimeCount >= 0.5f)
            rb.AddForce(transform.up * fallForce);
SulofShadow
SulofShadow
Iniciante
Iniciante

PONTOS : 36
REPUTAÇÃO : 0
Respeito as regras : Dúvida com Time.deltaTime WvDYdlf

Ir para o topo Ir para baixo

DÚVIDA Re: Dúvida com Time.deltaTime

Mensagem por classicandsimple Ter Ago 24, 2021 11:15 am

Nesse segmento de código o que acontece é:
- PRIMEIRO:  se eu soltar a tecla de espaço, então a váriavel isPressingJump ficará falsa, alegando então que eu não irei mais exercer do pulo maior (0.5 segundos no ar).


- SEGUNDO: se eu não estiver no chão (isOnTheGround for falso) e o contador for menor que o tempo de maior pulo (0.5 segundos), então eu aumento o contador de tempo de pulo (jumpTimeCount). Obs.: creio que tu possas omitir a parte  (isOnGround == false) && , tente retirá-la e veja se haverá algum efeito positivo para o novo problema.


- TERCEIRO: Se eu não estiver com a tecla de pulo pressionada (isPressingJump for falso) e meu tempo de pulo for maior que o menor tempo de pulo (0.3 segundos), então a gravidade se aplica para retornar ao chão, senão se (else if) se meu tempo de pulo for maior que o maior tempo de pulo (0.5 segundos), novamente, tenho a aplicação da gravidade.


Segmento de código.:

Código:
if (Input.GetKeyUp(KeyCode.Space)) // Primeiro;
{
  isPressingJump = false;
}

if ((isOnGround == false) && (jumpTimeCount < 0.5f)) // Segundo;
{
  jumpTimeCount += Time.deltaTime;
}

// Terceiro; If para caso eu queira um pulo de no máximo 0.3 segundos.
if ((isPressingJump == false) && (jumpTimeCount > 0.3f))
  rb.AddForce(transform.up * fallForce);
else if (jumpTimeCount >= 0.5f)  // if para caso eu queira um pulo maior que 0.3 segundos (com maior pulo sendo de 0.5 segundos);
  rb.AddForce(transform.up * fallForce);

Infelizmente, não consigo deduzir o que possa estar acontecendo para seu personagem parar de pular, pode ser algo relacionado ao Collider do objeto, porém, para isto eu precisaria ver o seu projeto, caso contrário seria necessário outra lógica de código (o que não seria díficil de se criar já tendo uma outra lógica pronta).
Caso tenhas resolvido, comente, assim podemos analizar o real erro para futuros problemas. Espero ter ajudado.
classicandsimple
classicandsimple
ProgramadorMaster

Outro / Não divulgar PONTOS : 96
REPUTAÇÃO : 23
Áreas de atuação : Desenvolvimento de software (iniciante com linguagem C).
Respeito as regras : Dúvida com Time.deltaTime Aad8pUi

Ir para o topo Ir para baixo

Ir para o topo


 
Permissão neste fórum:
Você não pode responder aos tópicos