Unity动画幅度太大怎么办

已知_animator.applyRootMotion ==true;的时候,动画位移也会算在位移里面。

但有些时候位移动作太大,这时候就需要调整了。

调整办法如下:

cs 复制代码
  /// <summary>
  /// 自定义根运动的核心回调函数
  /// </summary>
  void OnAnimatorMove()
  {
      var animator = AIBasicBehavior.Animator;
      // 1. 获取动画计算出的根运动增量(位移+旋转)
      Vector3 deltaPosition = animator.deltaPosition; // 本帧根运动的位移增量(世界坐标系)
      Quaternion deltaRotation = animator.deltaRotation; // 本帧根运动的旋转增量

      // 2. 缩放位移(仅缩放位移,旋转保持不变)
      deltaPosition *= 0.55f;

      // 关键修复:指定Translate使用世界坐标系(Space.World),匹配deltaPosition的坐标系
      transform.Translate(deltaPosition, Space.World);
      transform.rotation *= deltaRotation;
  }
相关推荐
_ZHOURUI_H_14 小时前
Unity MyFramework 用法说明(二十三):使用 PrefabPoolManager 复用预设实例
unity·游戏引擎·游戏开发·游戏ui·手游开发
冰凌糕16 小时前
Unity3D Shader 法线与基础光照
unity
新手unity自用笔记19 小时前
unity网络基础_1
网络·unity·游戏引擎
谢斯1 天前
[vscode] 使用unity打开vscode的取消.csproj的显示
ide·vscode·unity
魔术师Dix1 天前
StartGame:Unity TDD 外部工程指南
学习·游戏·unity·c#·测试驱动开发
hsw8157739432 天前
第10章 软件架构的演化和维护 — 系统架构设计师
unity·系统架构·游戏引擎
tealcwu2 天前
【尝鲜】Unity 6.7alpha版本测试
unity·游戏引擎