如何解决Unity Rigidbody.AddForce问题?



我正在制作一个弹跳垫(如果你喜欢这样的话,可以跳跃垫(。我想让它反弹你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);
}
}
}

感谢您的帮助!

施加力脉冲不会抵消任何相反的运动。例如,如果你正在跌倒并且你的Y速度是-10,那么向上施加一个速度为10的脉冲将得到总共0。如果要替换 Y 速度,可以直接设置速度而不是施加力。

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

这条线只是用跳跃力代替 Y 速度,同时保持 X 和 Z 值不变。这样,弹跳高度将保持不变。

最新更新