适用于Android的Unity - 显示滞后

时间:2015-06-28 11:44:51

标签: c# android unity3d touch lag

我是Unity / Android的新手,所以这里的错误可能非常基本。我现在所拥有的只是背景,当我在屏幕上移动手指时,它会跟随我的输入(触摸)。

问题是,即使我以适度缓慢的速度移动手指,它仍会落后。在我的测试设备上的开发人员设置中,我打开了显示屏幕上所有触摸的选项(白点)。这就是为什么我认为它只是显示滞后(或代码中的错误),因为虽然白点也落后(我读过它很难避免Android设备上的输入延迟)但它比我的对象更接近(我希望它们在同一个地方)。 它几乎看起来像我的对象在一个字符串上。

这是我的代码:

using UnityEngine;
using System.Collections;
using System;

public class PlayerMovement : MonoBehaviour {

    Vector3 worldCoordinates;

    void Start () {
        Application.targetFrameRate=60;
    }

    void Update () {

        foreach(Touch touch in Input.touches)
        {
            if (touch.phase == TouchPhase.Moved) 
            {
                worldCoordinates = Camera.main.ScreenToWorldPoint(touch.position);

                if ((Math.Sqrt(Math.Pow(worldCoordinates.x,2) + Math.Pow(worldCoordinates.y,2)) - Math.Sqrt(Math.Pow(transform.position.x,2) + Math.Pow(transform.position.y,2))<1))
                {
                    transform.position = new Vector3(worldCoordinates.x,worldCoordinates.y);
                }
            }
        }
    }
}

我已经尝试禁用抗锯齿功能。并将目标fps更改为60,但没有区别。也许我的代码有问题(比如touchphase.moved发生这种功能的时间太晚了),但我还没有找到这样的信息。

欢迎任何意见。

编辑:有没有人在他们的申请中有类似的案件?我在网上找到的只是关于输入滞后的主题(这里不是主要问题,只是其中的一部分),甚至那些都没有给出答案。老实说,我现在没有选择,并考虑将应用程序更改为只需要点击的东西(因为根据其他主题,点击工作正常)....

0 个答案:

没有答案