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

类地铁跑酷Unity游戏编辑器运行正常 打包APK后角色换道抖动

问题修复方案

1. 修复相机跟随的帧率无关插值

你的相机位置插值用了固定的0.1作为Lerp参数,没有和帧率绑定,编辑器高帧率下表现平滑,移动端帧率低就会出现跟随卡顿、错位的视觉抖动。
修改CAMERAFOLLO.cs中的LateUpdate代码:

// 原代码
transform.position = Vector3.Lerp(transform.position, desiredPosition,0.1f);
// 修改后
transform.position = Vector3.Lerp(transform.position, desiredPosition, 10f * Time.deltaTime);

你也可以把10f换成公共变量调整跟随顺滑度,该值越大跟随越紧。

2. 修复角色X轴移动过冲问题

当前角色横向移动的逻辑会在接近目标车道时出现过冲,来回修正位置导致抖动:
修改PLAYERLANEMOV.cs中moveVector.x的计算逻辑:

// 原代码
moveVector.x = (targetPosition - transform.position).normalized.x * speed;
// 修改后
float xDiff = targetPosition.x - transform.position.x;
moveVector.x = Mathf.Clamp(xDiff / Time.deltaTime, -speed, speed);

或者用更简单的Mathf.MoveTowards实现无过冲移动:

float targetX = targetPosition.x;
float newX = Mathf.MoveTowards(transform.position.x, targetX, speed * Time.deltaTime);
moveVector.x = (newX - transform.position.x) / Time.deltaTime;

3. 统一逻辑执行顺序

当前角色移动和相机跟随都写在LateUpdate中,执行顺序不确定会导致相机先更新、角色后移动的错位问题:

  • 打开Unity的编辑 > 项目设置 > 脚本执行顺序
  • 将PLAYERLANEMOV的执行顺序调到CAMERAFOLLO之前(数值越小执行越早)
  • 也可以将角色的移动逻辑从LateUpdate迁移到Update中,相机保持在LateUpdate执行,天然保证角色移动完成后相机再跟随。

4. 增加移动端帧率稳定设置

在游戏启动逻辑(比如GameManager的Start方法)中添加以下代码,锁定移动端帧率减少波动:

QualitySettings.vSyncCount = 0;
Application.targetFrameRate = 60;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 17:54:03