我希望在统一2D中创建一个类似于红球游戏的球角色,但是我似乎无法使其像红球中的角色一样工作。我希望球左右滚动,并且能够跳跃。我设法通过添加物理材料并增大摩擦力并添加了rb.AddForce()函数来使其左右滚动,但是我在跳跃时遇到了麻烦。我尝试了rb.velocity(),但是当我跳动或向右或向左移动时,球会过分用力,并且移动得太快。我是否缺少某些东西,或者有更好的方法吗?我需要帮助.....
答案 0 :(得分:0)
对此的快速解决方案是定义一个上限。喜欢:
float limit = 10f;
Rigidbody2D rig;
void Start(){
rig = gameObject.transform.GetComponent<Rigidbody2D>();
}
void Update(){
if(Input.GetKeyDown(KeyCode.A && rig.velocity.magnitude < limit){
rig.AddForce(accelerationVariable);
}
}
我将使用Rigidbody.velocity.magnitude,因为它可以为您提供矢量的长度。 如果您只想检查x-Force,请使用Rigidbody.velocity.x
希望有帮助