Gravidade do personagem está muito lenta.
2 participantes
Página 1 de 1
Gravidade do personagem está muito lenta.
Estou com um problema, vi num video e repliquei o script de um sistema de movimentação em 8 direções, mas tem um problema, a sua gravidade está muito devagar.
- Código:
ystem.Collections;
using System.Collections.Generic;
using UnityEngine;
[RequireComponent(typeof(Rigidbody))]
public class MOve : MonoBehaviour
{
float vertical;
float horizontal;
float verticalRaw;
float horizontalRaw;
Vector3 targetRotation;
float rotationSpeed = 10;
public float speed = 20;
Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody>();
}
// Update is called once per frame
void FixedUpdate()
{
horizontal = Input.GetAxis("Horizontal");
vertical = Input.GetAxis("Vertical");
horizontalRaw = Input.GetAxisRaw("Horizontal");
verticalRaw = Input.GetAxisRaw("Vertical");
Vector3 input = new Vector3(horizontal, 0, vertical);
Vector3 inputRaw = new Vector3(horizontalRaw, 0, verticalRaw);
if(inputRaw != Vector3.zero)
{
targetRotation = Quaternion.LookRotation(input).eulerAngles;
}
rb.rotation = Quaternion.Slerp(transform.rotation, Quaternion.Euler(targetRotation.x, Mathf.Round(targetRotation.y / 45f) * 45f, targetRotation.z), Time.deltaTime * rotationSpeed);
Vector3 vel = input * speed * Time.deltaTime;
rb.velocity = vel;
}
}
teos626- Membro
- PONTOS : 1927
REPUTAÇÃO : 0
Respeito as regras :
Re: Gravidade do personagem está muito lenta.
Em que vídeo você viu isso? Tem bastante coisa errada nessa lógica.
Não se utiliza Time.deltaTime na void FixedUpdate... não precisa normalizar a velocidade, ela já é constante.
E o seu jogador está sem gravidade por que você está zerando ela nos inputs....
no vector3 chamado 'vel', você precisa fazer o eixo Y dele receber o valor -9.8
Não se utiliza Time.deltaTime na void FixedUpdate... não precisa normalizar a velocidade, ela já é constante.
E o seu jogador está sem gravidade por que você está zerando ela nos inputs....
no vector3 chamado 'vel', você precisa fazer o eixo Y dele receber o valor -9.8
Re: Gravidade do personagem está muito lenta.
Você poderia modificar o script ??MarcosSchultz escreveu:Em que vídeo você viu isso? Tem bastante coisa errada nessa lógica.
Não se utiliza Time.deltaTime na void FixedUpdate... não precisa normalizar a velocidade, ela já é constante.
E o seu jogador está sem gravidade por que você está zerando ela nos inputs....
no vector3 chamado 'vel', você precisa fazer o eixo Y dele receber o valor -9.8
teos626- Membro
- PONTOS : 1927
REPUTAÇÃO : 0
Respeito as regras :
Re: Gravidade do personagem está muito lenta.
Este é um esboço, mas precisa de algumas adequações dependendo do projeto
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[RequireComponent(typeof(Rigidbody))]
public class MOve : MonoBehaviour {
Vector3 targetRotation;
float rotationSpeed = 8;
public float speed = 20;
Rigidbody rb;
void Start() {
rb = GetComponent<Rigidbody>();
rb.constraints = RigidbodyConstraints.FreezeRotationX | RigidbodyConstraints.FreezeRotationZ;
rb.interpolation = RigidbodyInterpolation.Extrapolate;
}
void FixedUpdate() {
float horizontal = Input.GetAxis("Horizontal");
float vertical = Input.GetAxis("Vertical");
float horizontalRaw = Input.GetAxisRaw("Horizontal");
float verticalRaw = Input.GetAxisRaw("Vertical");
Vector3 input = new Vector3(horizontal, 0, vertical);
if (input.magnitude > 1) {
input.Normalize();
}
Vector3 inputRaw = new Vector3(horizontalRaw, 0, verticalRaw);
if (inputRaw != Vector3.zero) {
targetRotation = Quaternion.LookRotation(input).eulerAngles;
}
rb.rotation = Quaternion.Slerp(transform.rotation, Quaternion.Euler(targetRotation.x, Mathf.Round(targetRotation.y / 45f) * 45f, targetRotation.z), Time.deltaTime * rotationSpeed);
Vector3 vel = input * speed;
vel.y = -9.8f;
rb.velocity = vel;
}
}
Tópicos semelhantes
» gravidade está agindo de forma estranha em objetos diferentes
» [RESOLVIDO] Problema com pulo do jogador - O personagem demora muito no ar!
» Jogo 2D Personagem atravessa o chão quando Pula muito alto
» Som de correr fica muito rápido quando coloco no personagem e do PLAY
» Meu personagem está tomando repulsão da parede
» [RESOLVIDO] Problema com pulo do jogador - O personagem demora muito no ar!
» Jogo 2D Personagem atravessa o chão quando Pula muito alto
» Som de correr fica muito rápido quando coloco no personagem e do PLAY
» Meu personagem está tomando repulsão da parede
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos