[RESOLVIDO] Transform.up Muito rápido!
4 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[RESOLVIDO] Transform.up Muito rápido!
Como o Translate era ruim para colisões resolvi usar o rb.velocity.
Isso faz meu personagem andar para o lado.
Em determinada parte preciso que meu personagem ande para cima , então apenas troquei o right , pelo up .
O problema é que o personagem vai extremamente rápido para cima.
O script é o mesmo , a velocidade é a mesma ( que a de andar para o lado ) , mas quando ponho para andar para cima, ele simplesmente voa.
Já tentei desligar a gravidade , mas tbm não adiantou.
Pessoas irão dizer , basta criar uma nova velocidade mais lenta e usar ela para andar pra cima!
Mas não funciona,ele até anda mais devagar , mas parece que o personagem está sendo puxado , ele começa devagar vai aumentando e diminuindo , bem estranho kkk
Alguma ideia de como arrumar isso?
O estranho é que tudo funciona normal , e quando troco right por up bagunça tudo,
Com forward da certo , right tbm mas up....
- Código:
rb.velocity = transform.right * velocidade + Vector3.up * rb.velocity.y;
Isso faz meu personagem andar para o lado.
Em determinada parte preciso que meu personagem ande para cima , então apenas troquei o right , pelo up .
O problema é que o personagem vai extremamente rápido para cima.
O script é o mesmo , a velocidade é a mesma ( que a de andar para o lado ) , mas quando ponho para andar para cima, ele simplesmente voa.
Já tentei desligar a gravidade , mas tbm não adiantou.
Pessoas irão dizer , basta criar uma nova velocidade mais lenta e usar ela para andar pra cima!
Mas não funciona,ele até anda mais devagar , mas parece que o personagem está sendo puxado , ele começa devagar vai aumentando e diminuindo , bem estranho kkk
Alguma ideia de como arrumar isso?
O estranho é que tudo funciona normal , e quando troco right por up bagunça tudo,
Com forward da certo , right tbm mas up....
Última edição por dstaroski em Dom Jul 01, 2018 4:17 pm, editado 1 vez(es) (Motivo da edição : Resolvido)
lesgoy- Mestre
- PONTOS : 3488
REPUTAÇÃO : 49
Respeito as regras :
Re: [RESOLVIDO] Transform.up Muito rápido!
Boa noite brothi! seu jogo é 2D? ele vai pular ou andar para cima (câmera de visão aérea)?
Abraço!
Abraço!
Re: [RESOLVIDO] Transform.up Muito rápido!
cara eu já te mandei o script no outro post brow, olha aquele, e usa aquele
Re: [RESOLVIDO] Transform.up Muito rápido!
Tem ctz? Lá n tem nada n.Dom3000 escreveu:cara eu já te mandei o script no outro post brow, olha aquele, e usa aquele
https://www.schultzgames.com/t7821-como-corrigir-o-box-collider-do-unity#55190
O jogo é 3d , havia criado outro tópico para esta movimentação , e tudo estava certo.
Me passaram esse codigo:
- Código:
rb.velocity = transform.right * velocidade + Vector3.up * rb.velocity.y;
Sei que o transform.right move para direita , mas n sei pra que serve esse vector3.up , mas se eu não coloco ele o personagem começa a voar se eu pulo e dps ando.
Ele anda normal , mas em determinada parte do jogo a gravidade é altera , e em vez de receber X = 0 , Y = -30 , Z =0 ele recebe X =0 , Y = 0 , Z = -30
E nesta parte preciso que o personagem ande para cima, o problema é que se eu por
- Código:
rb.velocity = transform.up * velocidade + Vector3.up * rb.velocity.y;
lesgoy- Mestre
- PONTOS : 3488
REPUTAÇÃO : 49
Respeito as regras :
Re: [RESOLVIDO] Transform.up Muito rápido!
Como é em 3D, você quer mover em todas as direções (, certo?
Re: [RESOLVIDO] Transform.up Muito rápido!
Na vdd tem setinha kkkkk
É para celular ,e tem a setinha que move pra cima , ai eu clico nela e o personagem vai
É para celular ,e tem a setinha que move pra cima , ai eu clico nela e o personagem vai
lesgoy- Mestre
- PONTOS : 3488
REPUTAÇÃO : 49
Respeito as regras :
Re: [RESOLVIDO] Transform.up Muito rápido!
dá uma olhada aqui brothi: https://unity3d.com/pt/learn/tutorials/projects/2d-ufo-tutorial/controlling-player é 2D, mas troca o rigidbody e o vector 2 por 3, talvez funcione.lesgoy escreveu:Na vdd tem setinha kkkkk
É para celular ,e tem a setinha que move pra cima , ai eu clico nela e o personagem vai
Abraço!
Re: [RESOLVIDO] Transform.up Muito rápido!
cara da para mover para frente e para traz, e rotacionar o seu player para mover para os lados, e para cima se vc quer pular com addForce, não é nesse post é num anterior que vc pedia como fazer para movimentar o teu player, e vc estava usando o Transform direto
Re: [RESOLVIDO] Transform.up Muito rápido!
este seu post
https://www.schultzgames.com/t7814-resolvido-problema-em-um-script?nid=464#55200
use este script cara
https://www.schultzgames.com/t7814-resolvido-problema-em-um-script?nid=464#55200
use este script cara
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[RequireComponent(typeof(Rigidbody))]// adiciona automaticamente o Rigidbody
public class Movimento : MonoBehaviour {
public float Velocidade = 100;// a velocidade
public bool
Opcao1, // vai acelerar se pressionar e desacelerar se não
Opcao2;// vai andar na velocidade e quando não pressionar vai parar
void Start () {
}
void Update () {
Rigidbody Rig = GetComponent<Rigidbody>();// pega o rigidbody
if (Opcao1)
{
if (Input.GetKey("w"))// se aperar a tecla W vai para frente
{
Rig.AddForce(transform.forward * Time.deltaTime * Velocidade);
}
if (Input.GetKey("s"))// se aperar a tecla S vai para traz
{
Rig.AddForce(transform.forward * Time.deltaTime * -Velocidade);
}
}
if (Opcao2)
{
if (Input.GetKey("w"))// se aperar a tecla W vai para frente
{
Rig.velocity = transform.forward* Time.deltaTime * Velocidade;
}
if (Input.GetKey("s"))// se aperar a tecla S vai para traz
{
Rig.velocity = transform.forward * Time.deltaTime * -Velocidade;
}
if (!Input.GetKey("w")&& !Input.GetKey("s"))// se não estiver precionando o w e nem o s ele para
{
Rig.velocity = transform.forward * Time.deltaTime * 0;
}
}
}
}
Re: [RESOLVIDO] Transform.up Muito rápido!
enfim esse seucodigo tem um erro basico, falta o Time.deltaTime para ser devagar se não sera muito rapido.
[list=linenums]
[*]rb.velocity = transform.up * velocidade*Time.deltaTime; Move no eixo y
[/list]
rb.velocity = transform.forward* velocidade*Time.deltaTime; Move no eixo z
rb.velocity = transform.right * velocidade*Time.deltaTime; Move no eixo x
[list=linenums]
[*]rb.velocity = transform.up * velocidade*Time.deltaTime; Move no eixo y
[/list]
rb.velocity = transform.forward* velocidade*Time.deltaTime; Move no eixo z
rb.velocity = transform.right * velocidade*Time.deltaTime; Move no eixo x
Re: [RESOLVIDO] Transform.up Muito rápido!
A velocidade eu ja dei DeltaTime antes , e eu não quero pular , quero andar pra cima mesmo .
OBS : A gravidade não esta no Y , esta no Z = -30 , Y = -30 , X = -30 , e dps de um tempo preciso que ele ande para cima de novo com a gravidade no X = -30 , Y = 0, Z = 0.
Isso de Axis n iria funcionar , pq eu uso setas.
Tipo , uma imagem com uma seta pro jogar clicar nela e andar.
OBS : A gravidade não esta no Y , esta no Z = -30 , Y = -30 , X = -30 , e dps de um tempo preciso que ele ande para cima de novo com a gravidade no X = -30 , Y = 0, Z = 0.
Isso de Axis n iria funcionar , pq eu uso setas.
Tipo , uma imagem com uma seta pro jogar clicar nela e andar.
lesgoy- Mestre
- PONTOS : 3488
REPUTAÇÃO : 49
Respeito as regras :
Re: [RESOLVIDO] Transform.up Muito rápido!
Gente eu troquei o
Mas eu n gosto de só copiar as coisas kkk
Poderiam me dizer pra que serve isso ?
[list=linenums]
[*]rb.velocity = transform.right * velocidade + Vector3.up * rb.velocity.y;
[/list]
Eu sei que o velocity = transform.right move o personagem , mas para que serve o
??
- Código:
+ Vector3.up * rb.velocity.y;
Mas eu n gosto de só copiar as coisas kkk
Poderiam me dizer pra que serve isso ?
[list=linenums]
[*]rb.velocity = transform.right * velocidade + Vector3.up * rb.velocity.y;
[/list]
Eu sei que o velocity = transform.right move o personagem , mas para que serve o
- Código:
+ Vector3.up * rb.velocity.y;
??
lesgoy- Mestre
- PONTOS : 3488
REPUTAÇÃO : 49
Respeito as regras :
Re: [RESOLVIDO] Transform.up Muito rápido!
Simples:
Vector3.up é a mesma coisa que: new Vector3(0,1,0);
Logo, quando é multiplicado por rb.velocity.y (A velocidade atual do player no eixo Y), fica assim:
new Vector3(0,rb.velocity.y,0)
Tendeu?
Vector3.up é a mesma coisa que: new Vector3(0,1,0);
Logo, quando é multiplicado por rb.velocity.y (A velocidade atual do player no eixo Y), fica assim:
new Vector3(0,rb.velocity.y,0)
Tendeu?
NKKF- ProgramadorMaster
- PONTOS : 4817
REPUTAÇÃO : 574
Idade : 20
Áreas de atuação : Desenvolvedor na Unity, NodeJS, React, ReactJS, React Native, MongoDB e Firebase.
Respeito as regras :
Re: [RESOLVIDO] Transform.up Muito rápido!
cara que doideralesgoy escreveu:A velocidade eu ja dei DeltaTime antes , e eu não quero pular , quero andar pra cima mesmo .
OBS : A gravidade não esta no Y , esta no Z = -30 , Y = -30 , X = -30 , e dps de um tempo preciso que ele ande para cima de novo com a gravidade no X = -30 , Y = 0, Z = 0.
Isso de Axis n iria funcionar , pq eu uso setas.
Tipo , uma imagem com uma seta pro jogar clicar nela e andar.
Re: [RESOLVIDO] Transform.up Muito rápido!
Amigo, se você quer ir para cima, se trata de um jogo 2D, porque está usando Vector3?
NKKF- ProgramadorMaster
- PONTOS : 4817
REPUTAÇÃO : 574
Idade : 20
Áreas de atuação : Desenvolvedor na Unity, NodeJS, React, ReactJS, React Native, MongoDB e Firebase.
Respeito as regras :
Re: [RESOLVIDO] Transform.up Muito rápido!
O jogo n é 2d é 3d.NKKF escreveu:Amigo, se você quer ir para cima, se trata de um jogo 2D, porque está usando Vector3?
Mas em uma parte do mapa a gravidade é invertida e o jogador é empurrado para parede , nesta parte precisaria que ele andasse para cima entendeu kk Mas ja consegui resolver obg gente
lesgoy- Mestre
- PONTOS : 3488
REPUTAÇÃO : 49
Respeito as regras :
Re: [RESOLVIDO] Transform.up Muito rápido!
lesgoy escreveu:O jogo n é 2d é 3d.NKKF escreveu:Amigo, se você quer ir para cima, se trata de um jogo 2D, porque está usando Vector3?
Mas em uma parte do mapa a gravidade é invertida e o jogador é empurrado para parede , nesta parte precisaria que ele andasse para cima entendeu kk Mas ja consegui resolver obg gente
Boa tarde brow! conte-nos por gentileza como resolveu.
Abraço!
Re: [RESOLVIDO] Transform.up Muito rápido!
Era algo bobo kkk
Como a gravidade não estava mais no eixo Y e sim no Z bastou trocar isso :
Como a gravidade não estava mais no eixo Y e sim no Z bastou trocar isso :
- Código:
rb.velocity = -transform.up * velocidade + Vector3.up* rb.velocity.y;
- Código:
rb.velocity = -transform.up * velocidade + Vector3.right * rb.velocity.z;
lesgoy- Mestre
- PONTOS : 3488
REPUTAÇÃO : 49
Respeito as regras :
Tópicos semelhantes
» While sendo executado muito rapido
» [RESOLVIDO] Como faço para um transform.position receber um novo transform dentro de um if
» [Duvida] NavMeshAgente se movendo muito rapido!
» [RESOLVIDO] Float to transform
» [RESOLVIDO] Problema Com o transform.LookAt!
» [RESOLVIDO] Como faço para um transform.position receber um novo transform dentro de um if
» [Duvida] NavMeshAgente se movendo muito rapido!
» [RESOLVIDO] Float to transform
» [RESOLVIDO] Problema Com o transform.LookAt!
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos