微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

字符不在水平轴上移动

如何解决字符不在水平轴上移动

我正在用2DVisual Studio Code来开发Unity平台游戏。到目前为止,我已经建立了以后将在主角和敌人中使用的动画。在主角中,我定义了“水平移动”和“垂直移动”。但是,当我运行游戏时,角色会向上移动,但不会向左或向右移动。

这是我为主要角色准备的代码

public class Hero : MonobehavIoUr 
 
 { 
    public float vel =10f;
    public Animator anim;
    private Vector2 moveVeLocity; 
    float horizontalMove = 0f; 

    private Rigidbody2D rb; 

  void Start()
  {
     rb = GetComponent<Rigidbody2D>();
  }

  void Update() 
  {
   horizontalMove = Input.GetAxisRaw("Horizontal") * vel;
   Vector2 moveInput = new Vector2(Input.GetAxisRaw("Horizontal"),Input.GetAxisRaw("Vertical"));
   moveVeLocity = moveInput.normalized * vel;
  }

  void FixedUpdate()
  {
    Vector2 v = new Vector2 (vel,0);
    rb.veLocity = v;
    rb.MovePosition(rb.position + moveVeLocity * Time.fixedDeltaTime);       
  }

}

有人可以告诉我我想念什么吗?

解决方法

如果将代码更改为此,它应该起作用:

    void Update() 
      {
       if(Input.GetKeyDown(KeyCode.D))
          {
          rb.AddRelativeForce(Vector2.right * (vel*Time.deltaTime));
          }
           else if(Input.GetKeyDown(KeyCode.A))
              {
              rb.AddRelativeForce(Vector2.left * (vel*Time.deltaTime));
              }
      }

由于您在游戏对象上附加了刚体,因此在用户按下D / A时向对象添加相对力将是有意义的,而不仅仅是更改对象的变换位置。这应该起作用。

,

基本上,您可以在输入管理器的“编辑”>“项目设置”>“输入”下设置水平向上移动。仔细检查水平轴是否设置在左右按钮上。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。