[RESOLVIDO] MOVIMENTO USANDO RIGIDIBODY NÃO POSSUI GRAVIDADE.
2 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[RESOLVIDO] MOVIMENTO USANDO RIGIDIBODY NÃO POSSUI GRAVIDADE.
Boa noite a todos, por gentileza, eu quero saber como usar um rigidibody para um movimento de personagem, mas que possua gravidade:
Crie uma esfera, adicione um rigidibody e anexe esse script, ele vai mover normalmente com as teclas w,a,s,d, então erga o objeto e ele vai cair muito lentamente, mesmo se aumentar a massa.
Obs: não desejo através do character controller, pois já uso o rigidibody em outros mecanismos e também não uso o transform para mover o objeto porque não é bom para colisões.
Grato a todos.
Crie uma esfera, adicione um rigidibody e anexe esse script, ele vai mover normalmente com as teclas w,a,s,d, então erga o objeto e ele vai cair muito lentamente, mesmo se aumentar a massa.
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Movimento : MonoBehaviour {
private Rigidbody rb;
public float speedMove = 3.0f;
void Awake()
{
rb = GetComponent<Rigidbody>();
}
void FixedUpdate()
{
Vector3 moveDir = new Vector3();
moveDir.x = Input.GetAxis("Horizontal");
moveDir.z = Input.GetAxis("Vertical");
moveDir = transform.TransformDirection(moveDir);
moveDir *= speedMove;
rb.velocity = moveDir;
}
}
Obs: não desejo através do character controller, pois já uso o rigidibody em outros mecanismos e também não uso o transform para mover o objeto porque não é bom para colisões.
Grato a todos.
osiasbezerra- Avançado
- PONTOS : 3532
REPUTAÇÃO : 8
Respeito as regras :
Re: [RESOLVIDO] MOVIMENTO USANDO RIGIDIBODY NÃO POSSUI GRAVIDADE.
Resolvido: e só usar o rb.MovePosition em vez de rb.velocity.
osiasbezerra- Avançado
- PONTOS : 3532
REPUTAÇÃO : 8
Respeito as regras :
Re: [RESOLVIDO] MOVIMENTO USANDO RIGIDIBODY NÃO POSSUI GRAVIDADE.
Obs.: Se você colocasse:
(O erro deu por conta de que você deixou a gravidade do rigidbody igual à 0, por isso a gravidade era tão pouco, não tinha aceleração, até tinha, mas você a zerava toda hora)
- Código:
Vector3 moveDir = new Vector3();
moveDir.x = Input.GetAxis("Horizontal");
moveDir.z = Input.GetAxis("Vertical");
moveDir = transform.TransformDirection(moveDir);
moveDir *= speedMove;
moveDir.y = rb.velocity.y;
rb.velocity = moveDir;
(O erro deu por conta de que você deixou a gravidade do rigidbody igual à 0, por isso a gravidade era tão pouco, não tinha aceleração, até tinha, mas você a zerava toda hora)
NKKF- ProgramadorMaster
- PONTOS : 4753
REPUTAÇÃO : 574
Idade : 19
Áreas de atuação : Desenvolvedor na Unity, NodeJS, React, ReactJS, React Native, MongoDB e Firebase.
Respeito as regras :
Re: [RESOLVIDO] MOVIMENTO USANDO RIGIDIBODY NÃO POSSUI GRAVIDADE.
Mas como seria o script, NKKF? por gentileza, faltou alguma linha.
osiasbezerra- Avançado
- PONTOS : 3532
REPUTAÇÃO : 8
Respeito as regras :
Re: [RESOLVIDO] MOVIMENTO USANDO RIGIDIBODY NÃO POSSUI GRAVIDADE.
Você só colocaria
antes de setar o rigidbody:
O mesmo código, só que adicionando isso ao FixedUpdate
- Código:
moveDir.y = rb.velocity.y;
antes de setar o rigidbody:
- Código:
rb.velocity = moveDir;
O mesmo código, só que adicionando isso ao FixedUpdate
NKKF- ProgramadorMaster
- PONTOS : 4753
REPUTAÇÃO : 574
Idade : 19
Áreas de atuação : Desenvolvedor na Unity, NodeJS, React, ReactJS, React Native, MongoDB e Firebase.
Respeito as regras :
Re: [RESOLVIDO] MOVIMENTO USANDO RIGIDIBODY NÃO POSSUI GRAVIDADE.
Muito show, NKKF !!! Deu certo!!!!! muito obrigado mesmo!!!!!
osiasbezerra- Avançado
- PONTOS : 3532
REPUTAÇÃO : 8
Respeito as regras :
Tópicos semelhantes
» [RESOLVIDO]Ativar o Character controle faz o boneco ignorar gravidade
» [RESOLVIDO] Detectar colisão usando if em C#?
» [RESOLVIDO] Como Desabilito a Gravidade?
» [RESOLVIDO] Objeto não sofre efeito da gravidade Unity
» [RESOLVIDO] Como alterar a gravidade conforme o tempo
» [RESOLVIDO] Detectar colisão usando if em C#?
» [RESOLVIDO] Como Desabilito a Gravidade?
» [RESOLVIDO] Objeto não sofre efeito da gravidade Unity
» [RESOLVIDO] Como alterar a gravidade conforme o tempo
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos