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.
- Si el jugador corre y se mueve al mismo tiempo, el jugador es empujado unas pocas Unityes.
- 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