首页 > 解决方案 > 二维球角色控制器

问题描述

我希望在统一 2d 中创建一个类似于红球游戏的球角色,但我似乎无法让它像红球中的角色一样工作。我希望球能够左右滚动并能够跳跃。我设法通过添加物理材料并增加摩擦力并添加 rb.AddForce() 函数使其左右滚动,但我在跳跃时遇到了麻烦。我尝试了 rb.velocity() 但是当我跳跃并向右或向左移动时,球的力量太强了,而且它移动得太快了。我错过了什么还是有更好的方法来做到这一点?我需要帮助.....

标签: c#unity3dgame-development

解决方案


对此的快速解决方法是定义一个上限。喜欢:

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

希望有帮助


推荐阅读