【问题标题】:unity character not moving while jump跳跃时统一角色不动
【发布时间】:2016-10-27 03:07:13
【问题描述】:

大家好,谢谢大家阅读我的问题,我正在使用 unity 5 创建永远的跑步者游戏,我希望我的角色跳过障碍物,但我希望物体在跳跃过程中向前移动,但是我有跳跃花很短的时间,角色离地面很近,而不是向前移动-跳跃时-即使我像代码中那样对其施加力,我该怎么办?

void Start () 
{
    anim = GetComponent<Animator>();
    rbody = GetComponent<Rigidbody>();
    verticalJumpPower = 80f;
    horizantalJumpPower = 1000f;
    playerVelocity = 10f;
    isGrounded = true;
}

***in update function :*** 

if(Input.GetKeyDown (KeyCode.UpArrow))
{
    rbody.AddForce(new Vector3(0,verticalJumpPower,horizantalJumpPower));
    anim.SetBool("jump",true);
    isGrounded = false;


    } 

【问题讨论】:

  • 尝试将ForceMode 类型更改为ForceMode.Impulse。即rBody.AddForce(new Vector3(0, verticalJumpPower, horizontalJumpPower), ForceMode.Impulse);
  • 它对施加力起作用了,但角色仍然没有在空中向前移动
  • 这是用于 2D 游戏的吗?检查您已将游戏世界对齐到的轴。您可能需要将 Vector3 构造函数更改为 horizontalJumpPower, verticalJumpPower, 0。
  • 我确定我在 z 方向上运行
  • 我添加了 anim.applyRootMotion = false;它奏效了

标签: c# unity3d game-engine game-physics


【解决方案1】:

我添加了anim.applyRootMotion = false;,它起作用了

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-22
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多