En este momento estás viendo Rigidbody addForce en el jugador en movimiento y de pie es diferente

 – Unity

Rigidbody addForce en el jugador en movimiento y de pie es diferente – Unity

Rigidbody addForce en el jugador en movimiento y de pie es diferente

– UnityAssets3Free

buenas , soy Camilo y para hoy os traigo
esta pregunta

Estoy tratando de hacer que mi jugador corra hacia donde está mirando. El siguiente código funciona pero da 2 resultados diferentes.

  1. Si el jugador corre y se mueve al mismo tiempo, el jugador es empujado unas pocas Unityes.
  2. Si el jugador corre solo, el jugador es empujado 4/5 veces lo anterior.

¿Cómo obtengo el resultado 1 para ambos, ya sea que estén en movimiento o estacionarios?

private void Start() 
    rb = GetComponent<Rigidbody>();


private void Update()

    horizontalInput = Input.GetAxisRaw("Horizontal");
    verticalInput = Input.GetAxisRaw("Vertical");
    direction = new Vector3(horizontalInput, 0f, verticalInput).normalized;

    if(Input.GetKeyDown(KeyCode.Space))
        isDashing = true;
    


private void FixedUpdate() 
    Move();

    if(isDashing)
        Dash();
    


void Move()

    if(direction.magnitude >= 0.1f)
    
        float targetAngle = Mathf.Atan2(direction.x, direction.z) * Mathf.Rad2Deg + camera.eulerAngles.y;
        float angle = Mathf.SmoothDampAngle(transform.eulerAngles.y, targetAngle, ref turnSmoothVelocity, 0.1f);
        transform.rotation = Quaternion.Euler(0f, angle, 0f);

        Vector3 moveDirection = Quaternion.Euler(0f, targetAngle, 0f) * Vector3.forward;
        moveDirection.y = rb.velocity.y;
        rb.velocity = moveDirection * currentSpeed * Time.deltaTime;
    


void Dash()

    rb.AddForce(transform.forward * dashForce, ForceMode.Impulse);
    isDashing = false;

0

nota: si aun no se resuelve tu pregunta por favor dejar un comentario y pronto lo podremos de nuevo , muchas gracias

sin mas,espero que te halla servido

Deja una respuesta