Как исправить проблему Unity Rigidbody.AddForce? - PullRequest
1 голос
/ 15 февраля 2020

Я делаю площадку для прыжков (панель прыжков, если вам это нравится). Я хотел, чтобы он заставил вас отскочить от OnTriggerEnter, что я и сделал с помощью Rigidbody.AddForce.

И моя проблема в том, что когда-то он подпрыгивает вам выше, когда-то ниже, а иногда совсем не отскакивает, вы просто падаете на него.

Вот мой код:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class BouncerBouncing : MonoBehaviour
{
    public float bounceForce;

    public Rigidbody playerRigidbody;

    void OnTriggerEnter(Collider collider)
    {
        if(collider.gameObject.tag == "Player")
        {
            playerRigidbody.AddForce(0, bounceForce, 0, ForceMode.Impulse);
        }
    }
}

Спасибо за вашу помощь!

1 Ответ

0 голосов
/ 16 февраля 2020

Применение импульса силы не отменяет никакого противоположного движения. Например, если вы падаете и ваша скорость Y равна -10, применение импульса со скоростью 10 и выше даст вам всего 0. Если вы хотите заменить свою скорость Y, вы можете вместо этого напрямую установить скорость применения силы.

playerRigidbody.velocity = new Vector3(playerRigidbody.velocity.x, bounceForce, playerRigidbody.velocity.z);

Эта линия просто заменяет скорость Y силой скачка, сохраняя значения X и Z такими, какими они были. Таким образом, высота отскока будет оставаться постоянной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...