You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity2D玩家子对象武器动画指定不旋转,松开按键后仍轻微偏移如何解决

问题根因
  1. 武器的Animator未同步获取lastMoveX、lastMoveY参数,停止移动时没有正确的参数驱动武器朝向动画
  2. Input.GetAxis自带输入平滑效果,松开按键时数值会线性衰减到0,当数值低于0.5阈值进入停止逻辑时,lastMove存储的是低于1的中间值,不是最终的标准朝向值,导致动画混合出现偏移
  3. 若武器动画状态机的待机过渡条件未使用lastMove参数判断朝向,也会导致停止时武器朝向错误
修复步骤
  • 修正lastMove赋值逻辑,确保存储标准化的朝向值,避免衰减的中间值干扰动画:
void Update()
{
    // 可选:换成GetAxisRaw取消输入平滑,数值会直接跳变无过渡
    // float horizontalInput = Input.GetAxisRaw("Horizontal");
    // float verticalInput = Input.GetAxisRaw("Vertical");
    float horizontalInput = Input.GetAxis("Horizontal");
    float verticalInput = Input.GetAxis("Vertical");

    rb.velocity = new Vector2(horizontalInput * moveSpeed, verticalInput * moveSpeed);

    if (Mathf.Abs(horizontalInput) > 0.5f)
    {
        isMoving = true;
        // 直接存储±1的标准朝向值,不要存中间衰减值
        lastMove = new Vector2(Mathf.Sign(horizontalInput), 0f);
    }
    else if (Mathf.Abs(verticalInput) > 0.5f)
    {
        isMoving = true;
        lastMove = new Vector2(0f, Mathf.Sign(verticalInput));
    }
    else
    {
        isMoving = false;
        rb.velocity = Vector2.zero;
    }

    animator.SetFloat("moveX", horizontalInput);
    animator.SetFloat("moveY", verticalInput);
    animator.SetBool("isMoving", isMoving);
    animator.SetFloat("lastMoveX", lastMove.x);
    animator.SetFloat("lastMoveY", lastMove.y);

    // 新增:同步参数到武器Animator,weaponAnimator需要先在面板挂载武器的Animator组件
    weaponAnimator.SetFloat("moveX", horizontalInput);
    weaponAnimator.SetFloat("moveY", verticalInput);
    weaponAnimator.SetBool("isMoving", isMoving);
    weaponAnimator.SetFloat("lastMoveX", lastMove.x);
    weaponAnimator.SetFloat("lastMoveY", lastMove.y);
}
  • 在playermovements脚本中添加武器Animator的引用声明,在Inspector面板将Weapon对象的Animator组件拖入对应插槽:
public Animator weaponAnimator;
  • 检查武器的Animator状态机配置:
    • 确认参数列表存在和玩家Animator一致的moveX、moveY、isMoving、lastMoveX、lastMoveY参数
    • 朝向相关的待机状态过渡条件必须使用lastMoveX/lastMoveY判断,不要用实时输入的moveX/moveY判断

内容的提问来源于stack exchange,提问作者Arya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 00:24:04