在iOS中如何避免使用Unity MovePlayerOnYAxis延迟?

时间:2016-08-01 15:07:55

标签: ios unity3d unity5

我的脚本非常适用于Android并且不会减慢速度,但是当我尝试在IoS上使用它时,有时会非常好,有时它会滞后并将玩家移动1英寸或更少,而我不会知道如何解决它。 FPS没有下降,它保持稳定在60fps。

void MovePlayerOnYAxis()
    {

        foreach (Touch touch in Input.touches)
        {
            Vector3 newPosition = transform.position;
            newPosition.y += Mathf.Clamp(touch.deltaPosition.y * speed, MIN_SPEED, MAX_SPEED) * Time.deltaTime;
            transform.position = newPosition;

        }
    }

1 个答案:

答案 0 :(得分:1)

此代码脱离上下文的信息太少,无法提供实际答案,因此我的意见将帮助您更好地调查此问题。

在我看来,延迟与操作系统处理触摸几乎没有关系,它很可能是与您在每个帧执行的其他操作相关的问题。 Android和iOS管理线程,渲染和内存的方式截然不同,所以你提到60FPS的简单事实让我觉得你正在遇到某种竞争条件:移动设备上的最佳帧率是30,所以我建议通过首先限制帧速率来开始调查,将以下内容放在一个脚本中:

    void Awake() {
        Application.targetFrameRate = 30;
    }

这将为引擎和操作系统留下足够的计算能力来执行其他任务,因此它是您调查的良好起点。