Unity 2d Sprite bewegt sich nicht genau zusammen mit Finger Touch im Handyspiel
Posted: 04 Feb 2025, 22:42
Ich habe ein Sprite in einem 2D -Handyspiel in Einheit und versuche, diesen Sprite mit meinem Finger zu berühren und zu ziehen, damit sich das Sprite genau dort bewegen sollte, wo der Finger auf dem Bildschirm berührt wird. Das Problem ist jedoch, dass das Sprite immer hinter dem Finger auf dem Bildschirm zurückbleibt. Wenn ich den Finger mit sehr schnellen Geschwindigkeiten bewege, wird das Sprite verzögert. Das Sprite muss in seiner Bewegung sehr unmittelbar sein und an dem Punkt auf dem Bildschirm anwesend sein, wo der Finger berührt wird (das Sprite wird von der Fingerberührung zu jeder Zeit gezogen), es ist für das Spiel sehr wichtig. < BR /> Ich habe den folgenden Code ausprobiert: < /p>
void Update()
{
if (Input.touchCount > 0)
{
Touch touch = Input.GetTouch(0);
Vector3 touchPosition = Camera.main.ScreenToWorldPoint(touch.position);
touchPosition.z = 0f;
if (touch.phase == TouchPhase.Began)
{
touchOffset = transform.position - touchPosition;
}
transform.position = touchPosition + touchOffset;
}
}
< /code>
In diesem Fall hat das Sprite eine Verzögerung bei sehr schnellen Geschwindigkeiten von Finger -Touch und Drag. Die Geschwindigkeit ist für das Spiel sehr wichtig und der Sprite sollte immer vorhanden sein, wo der Finger auf dem Bildschirm berührt wird.
void Update()
{
if (Input.touchCount > 0)
{
Touch touch = Input.GetTouch(0);
Vector3 touchPosition = Camera.main.ScreenToWorldPoint(touch.position);
touchPosition.z = 0f;
if (touch.phase == TouchPhase.Began)
{
touchOffset = transform.position - touchPosition;
}
transform.position = touchPosition + touchOffset;
}
}
< /code>
In diesem Fall hat das Sprite eine Verzögerung bei sehr schnellen Geschwindigkeiten von Finger -Touch und Drag. Die Geschwindigkeit ist für das Spiel sehr wichtig und der Sprite sollte immer vorhanden sein, wo der Finger auf dem Bildschirm berührt wird.