我是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发生这种功能的时间太晚了),但我还没有找到这样的信息。
欢迎任何意见。
编辑:有没有人在他们的申请中有类似的案件?我在网上找到的只是关于输入滞后的主题(这里不是主要问题,只是其中的一部分),甚至那些都没有给出答案。老实说,我现在没有选择,并考虑将应用程序更改为只需要点击的东西(因为根据其他主题,点击工作正常)....